Django的。同一模型中的多个OneToOneField

时间:2015-10-19 17:01:18

标签: python django model

我有一个用户模型和一个文章模型。我希望用户只对一篇文章投票一次。所以我想创建一个投票模型,它只与用户模型相关一次,而与文章模型只相关一次。

我该怎么做?是否可以在投票模型中使用多个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 个答案:

答案 0 :(得分:4)

嗯,你能做的最好的就是第二个。因为在第一篇文章中你只能在一篇文章中投一票。在第二篇文章中,您可以在一篇文章中获得多次投票,但一次投票只能与一篇文章相关。我认为这就是你想要的。

相关问题