Django OneToOneField还是ForeignKey?

时间:2015-06-02 08:27:47

标签: django django-models model

我的models.py

class User:
  // fields ...

class Post:
  // fields ...

class Comment:
  news = models.ForeignKey(Post)
  user = models.???(User)

每个Post可以包含任意数量的Comment个。 但对于每个Post,我希望用户只有一个Comment我该如何对此进行建模?

我无法user = models.OneToOneField(User),因为在这种情况下,User只能在所有Post内发表一次评论。

此外我无法user = models.ForeignKey(User),因为在这种情况下,User将能够在单个Post上发布尽可能多的评论,这不是我想要的。

1 个答案:

答案 0 :(得分:3)

您对unique_together模型元选项感兴趣:

  

一起使用的字段名称集必须是唯一的。

class Comment(models.Model):
    news = models.ForeignKey(Post)
    user = models.ForeignKey(User)
    # ...
    class Meta:
        unique_together = ('news', 'user')

您的user字段可以只是ForeignKey

相关问题