我有一个用户模型和一个文章模型 . 我希望用户只对一篇文章投票一次 . 所以我想创建一个投票模型,它只与用户模型相关一次,而与文章模型只相关一次 .
我怎样才能做到这一点 ?是否可以在投票模型中使用多个OneToOneField,如下所示:
class Vote(models.Model):
user_id = models.OneToOneField(User)
article_id = models.OneToOneField(Article)
vote = models.BooleanField()
我也看到了这种方法(Django. Restrict each user to only vote once):
class Vote(models.Model):
class Meta:
unique_together = (('user_id','article_id'),)
user_id = models.ForeignKey(User)
article_id = models.ForeignKey(Article)
vote = models.BooleanField()
哪一个是最好的 ?
谢谢
1 回答
那么,你能做的最好的就是第二个 . 因为在第一篇文章中你只能在一篇文章中投一票 . 在第二篇文章中,您可以在一篇文章中获得多次投票,但一次投票只能与一篇文章相关 . 我认为这就是你想要的 .