我的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
上发布尽可能多的评论,这不是我想要的。
答案 0 :(得分:3)
您对unique_together
模型元选项感兴趣:
一起使用的字段名称集必须是唯一的。
class Comment(models.Model):
news = models.ForeignKey(Post)
user = models.ForeignKey(User)
# ...
class Meta:
unique_together = ('news', 'user')
您的user
字段可以只是ForeignKey
。