首页 文章

Django的 . 多个OneToOneField在同一个型号中

提问于
浏览
2

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

我怎样才能做到这一点 ?是否可以在投票模型中使用多个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 回答

  • 4

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

相关问题