У меня есть сайт Django, у которого есть боковая панель с множеством различных полей, которые могут входить в нее в зависимости от страницы. Например, «Последние комментарии», «Последние твиты» или «Избранные истории». Все эти поля требуют выполнения запросов к базе данных.
Я мог бы просто добавить most_recent_comments и любую другую переменную, необходимую для просмотра для каждой страницы. Но это чувствует себя хрупким. Я хотел бы иметь возможность перемещать и менять окна, просто редактируя шаблоны.
Итак, моя другая мысль заключалась в том, что я мог бы добавить все переменные, которые могут понадобиться всем блокам, на каждую страницу с помощью обработчика контекста, но достаточно ли ORM для выполнения запросов только для страниц, которые на самом деле используют эти переменные? Или это попадет в базу данных, даже если у меня нет ящиков на странице?
Так что я думаю, что мне нужен какой-то специальный тег, где я мог бы просто сказать {% most_recent_comments_box%}, и он был бы достаточно умен, чтобы загрузить любые необходимые переменные из базы данных, а затем вызвать небольшой файл шаблона. Это правильный подход? Как мне это сделать?