Django数据库模型设计 - 链接3型型号



我的项目用django编写。我有一个用于学术文章的模型。

class Article(models.Model):
     title = models.CharField(max_length=300)
     abstract = models.TextField(blank=True)
     ...

我有另一个模型,即文章可能会响应以下问题:

class Question(models.Model):
     question = models.CharField(max_length=300)
     article = models.ManyToManyField(Article)

一篇文章可以通过以下三种方式之一回答一个问题:"是","否"one_answers"不足的证据"。但是,根据问题,同一篇文章可能会有所不同。因此,例如,第1条可能对问题1回答"是","否"对问题2和"不足的证据"。

我为如何在模型中设计这些响应而苦苦挣扎。我可以为响应创建一个单独的模型:

class Response(models.Model):
     response = models.CharField(max_length=25)

然后用我的三个响应('yes'',否',"证据不足")填充该模型,然后在我的文章模型中添加一个字段,以备这样的响应:

response = models.ManyToManyField(Response)

但是,我将如何将文章的回答与问题联系起来?我如何告诉数据库,第1条对问题1的回答是"是",其对问题2的响应是"否",其对问题3的响应是"证据不足"?谢谢。

这应该有效,然后:

class Response(models.Model):
    # consider a different name for this field? Or not.
    response = models.CharField(max_length=25)
    article = models.ForeignKey(Article)
    question = models.ForeignKey(Question)

另外,如果Response.response实际上是3个选择,请考虑将choices参数用于INT,而不是CharField

请参阅此处 ->

最新更新