Я новичок в Django, перешел с PHP на движок Propel ORM. Итак, вот что я сейчас делаю в Django. На моем сайте есть несколько моделей, таких как
- Книга,
- Издатель,
- Комментарий,
- Статья и тд (не суть)
Каждый из них может понравиться или не понравиться пользователю (только один раз), изменив рейтинг модели на +1 или -1.
С точки зрения PHP я бы создал поведение, например. «Rateable», который добавит некоторые поля и методы к исходной модели и классу запроса (например, get_rating()
, order_by_rating()
и т. д.) и создаст отдельную таблицу для каждой модели, например. book_rating_history
, который будет содержать все рейтинги для каждого объекта, чтобы определить, может ли пользователь изменить рейтинг (или показать все рейтинги объекта, если это необходимо). Так что все, что мне нужно сделать, это указать поведение «Rateable» в объявлении модели, и все. Все остальное делается автоматически.
Вопрос - как это решить в Django? Как правильно моделировать? Какие методы вы используете в подобных случаях?