与Django唯一的外键对

时间:2010-12-23 21:36:58

标签: django django-models many-to-many

我有三种模式:产品用户评论

评论与产品和用户相关联如下:

class Review(models.Model):
    product = models.ForeignKey(Product)    
    user = models.ForeignKey(User)
    review_text = models.TextField()
    creation_date = models.DateTimeField(auto_now_add=True)

我想允许每个用户每个产品只提交一次评论。推荐的方法是什么?通过模型,通过验证,还是其他什么?我是Django / Python的新手。感谢。

1 个答案:

答案 0 :(得分:29)

使用unique_together确保每个用户/产品组合都是唯一的:

class Review(models.Model):

  class Meta:

    unique_together = ['user', 'product']

  user = models.ForeignKey(User)
  product = models.ForeignKey(Product)