Уникальные пары внешних ключей с Django - PullRequest
22 голосов
/ 24 декабря 2010

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

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

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 Ответ

29 голосов
/ 24 декабря 2010

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

class Review(models.Model):

  class Meta:

    unique_together = ['user', 'product']

  user = models.ForeignKey(User)
  product = models.ForeignKey(Product)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...