@Lepilov

Как работают и для чего нужны обобщенные связи в Django?

Узнал, что в джанго кроме основных трех видов связей между моделями (MtM, OtO, OtM)есть также обобщенные связи (GenericRelation). Но что то я не могу их понять. Офдок читал, стало немного получше, но все равно был бы благодарен если кто сможет описать простым языком зачем они нужны, в каких случаях стоит применять и как работают.
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Есть у вас, предположим, модель новости и её можно комментировать, для чего используется модель комментария. А через месяц эксплуатации сайта заказчик захотел ещё и статьи, и чтобы их тоже можно было комментировать. А потом ещё события всякие - театральные премьеры, киносеансы, концерты. И обзоры ресторанов маячат впереди. Вот только ForeignKey может указывать только на конкретную модель. Придётся либо все модели наследовать от общего корня, либо по новой писать модель комментариев и весь сопроводительный код для каждой комментируемой модели. И то, и другое - решение плохое. Выход - обобщённые отношения, позволяющие одну модель комментариев использовать для неопределённо большого круга заранее неизвестных моделей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы