Подтвердить что ты не робот

Уникальные пары внешних ключей с 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. Спасибо.

4b9b3361

Ответ 1

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

class Review(models.Model):

  class Meta:

    unique_together = ['user', 'product']

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