Уникальные пары внешних ключей с 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
Используйте unique_together
, чтобы убедиться, что каждая комбинация пользователя/продукта уникальна:
class Review(models.Model):
class Meta:
unique_together = ['user', 'product']
user = models.ForeignKey(User)
product = models.ForeignKey(Product)