姜戈。同一模型中的多个 OneToOneField

pch*_*hmn 3 python django model

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

我怎样才能做到这一点 ?是否可以在 Vote 模型中使用多个 OneToOneField,如下所示:

class Vote(models.Model):

    user_id = models.OneToOneField(User)
    article_id = models.OneToOneField(Article)
    vote = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

我也看到了这个方法(Django。限制每个用户只能投票一次):

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()
Run Code Online (Sandbox Code Playgroud)

哪一个是最好的 ?

谢谢

Jos*_*ero 6

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