Работая над моими проектами на основе Django, я всегда стараюсь следовать подходу Django к повторно используемым приложениям - я пытаюсь отделить свои приложения друг от друга и особенно стараюсь избегать перекрестных ссылок, но иногда это не кажется возможно.
Давайте рассмотрим простой пример с 2 приложениями: статьи и пользователи. Приложение «Статьи» определяет модель статьи, представление списка статей и отдельное представление статьи, приложение «Пользователи» определяет модель пользователя и представление профиля пользователя. Статья ссылается на пользователя из поля автора, поэтому приложение статей явно зависит от приложения пользователя, что нормально.
Но когда дело доходит до профиля пользователя, я хочу отображать последние статьи, созданные пользователем (и, может быть, последние статьи, просмотренные пользователем) на этой странице, но это делает приложение пользователя осведомленным о приложении статей, которое я пытаясь избежать.
Я, очевидно, могу попытаться переместить все такие ссылки на уровень шаблона, но это все еще не решает проблему полностью и в то же время может иногда быть очень неэффективным с точки зрения запросов к базе данных.
Что вы, ребята, делаете в таких случаях?