Предположим, у вас есть две модели: Post
и Category
. Каждый Post
имеет category_id
.Двусторонний запрос в Django без круговой ссылки
Получение категории должности является простым: post.category
. Что делать, если вы хотите получить все посты для определенной категории? Я полагаю, вы могли бы сделать
def posts(self):
return Post.filter(category__pk=self.id)
Но что, если Post
модель и Category
модели находятся в отдельных файлах? Поскольку Post
и Category
теперь требуют друг друга, вы получите круговую ссылку.
Возможно, вы скажете, что решение: положить Post
и Category
в тот же файл. Но что, если ваше приложение имеет 50 разных моделей, многие из которых довольно большие, все в отдельных файлах? Должны ли вы объединить Post
и Category
в один файл и оставить все остальные отдельно? Должны ли вы объединить все 50 моделей в один гигантский файл?
Я надеюсь найти одну из двух вещей:
- Ответ на этот вопрос, который не включает комбинирование файлов
- Хорошую, логическую причины для группирования моделей в тот же файл с одним другой. Все мои модели связаны в какой-то степени, поэтому, где вы рисуете линию, насколько группируется? Если вы рисуете линию с помощью внешних ключей, все мои модели попадают в один и тот же файл.
«вы получите круглую ссылку». Это предположение совершенно неверно. Почему вы говорите, что? –
Я попробовал, и вот что случилось. –
Пожалуйста, разместите код, который вы пробовали. У вас есть ошибка в коде. Все ваши «Может быть, вы говорите ...» до конца вопроса основываются на неправильных предположениях. Пожалуйста, разместите код и ошибку, которую вы действительно получаете. –