Уникальные пары внешних ключей с Django


У меня есть три модели: Продукты, пользователи иотзывы .

Отзыв связан с продуктом и пользователем следующим образом:

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 20

1 ответ:

Использование unique_together чтобы убедиться, что каждая комбинация пользователя и продукта уникальна:

class Review(models.Model):

  class Meta:

    unique_together = ['user', 'product']

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