@Lepilov

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

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

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

Похожие вопросы