Каков «правильный способ» разработки моделей Django для этого варианта использования? - PullRequest
2 голосов
/ 11 июля 2011

Я немного озадачен тем, что «правильный путь» заключается в разработке моделей Django для этого конкретного случая использования.

У меня есть модели под названием Книга, Пользователь, Рейтинг. Я разрабатываю приложение, которое позволяет пользователям оценивать книги.

Рейтинг имеет отношение «многие к одному» с пользователем и отношение «многие к одному» с Книгой.

class User(models.Model):
    name = models.CharField(max_length=30)

class Book(models.Model):
    name = models.CharField(max_length=30)

class Rating(models.Model):
    user = models.ForeignKey(User,related_name=ratings)
    book = models.ForeignKey(Book,related_name=ratings)
    ...

С этим дизайном я не могу понять, как применить правило, согласно которому пользователь может оценивать каждую книгу только один раз. Я также не уверен, является ли это правильным способом разработки моделей для этого варианта использования. Так что, если бы я мог получить несколько указателей в правильном направлении, это могло бы помочь мне избежать конструктивных ошибок на этом раннем этапе.

Заранее спасибо!

1 Ответ

5 голосов
/ 11 июля 2011

Вы можете использовать параметр Meta unique_together в своей модели рейтинга: https://docs.djangoproject.com/en/1.3/ref/models/options/#unique-together

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...