Django 数据库模型设计 - 连接3个模型

2024-04-25 22:28:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的项目是用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)

一篇文章可以用三种方式回答一个问题:“是”、“否”和“证据不足”。但同一篇文章可能会根据不同的问题做出不同的回应。例如,第1条可能对问题1回答“是”,对问题2回答“否”,对问题3回答“证据不足”。你知道吗

我正在努力研究如何将这些反应设计到我的模型中。我可以创建一个单独的模型来回答如下问题:

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

然后用我的三个回答(“是”、“否”、“证据不足”)填充该模型,然后在我的文章模型中为如下回答添加一个字段:

response = models.ManyToManyField(Response)

但是,我如何将一篇文章的回答与一个问题联系起来呢?我如何告诉数据库article1对问题1的回答是“是”,对问题2的回答是“否”,对问题3的回答是“证据不足”?非常感谢。你知道吗


Tags: 项目django模型modelmodelsresponsearticle文章
1条回答
网友
1楼 · 发布于 2024-04-25 22:28:25

这应该管用,那么:

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。你知道吗

here ->

相关问题 更多 >