Django OneToOneField还是ForeignKey?
MyDjango OneToOneField还是ForeignKey?,django,django-models,model,Django,Django Models,Model,Mymodels.py: class User: // fields ... class Post: // fields ... class Comment: news = models.ForeignKey(Post) user = models.???(User) 每个Post可以有任意数量的Comments。但是对于每个帖子,我希望用户只有一条评论。我该如何建模 我不能做user=models.OneToOneField(user),因为在这种情况下用户只能在所有帖子
models.py
:
class User:
// fields ...
class Post:
// fields ...
class Comment:
news = models.ForeignKey(Post)
user = models.???(User)
每个Post
可以有任意数量的Comment
s。但是对于每个帖子
,我希望用户只有一条评论
。我该如何建模
我不能做user=models.OneToOneField(user)
,因为在这种情况下用户只能在所有帖子中发表一次评论
另外,我不能做user=models.ForeignKey(user)
,因为在这种情况下,user
可以在一个post
上发布任意多的评论,这不是我想要的 您对模型元选项感兴趣:
字段名集,这些字段名加在一起必须是唯一的
然后,您的用户
字段就可以成为一个外键
太棒了!另外,请建议我如何学习Django。我是否只是涉过了所有的调整、选项和配置?有太多的选择:(.显然,我不能在评论中提及这一点,甚至连答案都没有。有很多书和教程,但对于这一级别的问题来说,一个良好的开端总是非常广泛的。选项越多,功能就越强。
class Comment(models.Model):
news = models.ForeignKey(Post)
user = models.ForeignKey(User)
# ...
class Meta:
unique_together = ('news', 'user')