Как отправлять данные в base.html в django?

#python #django

#python #django

Вопрос:

Я ищу способ абстрагировать панель навигации в django и включить ее в base.html ; напрямую или через включение шаблона.

Часть, в которой я полностью запутался, заключается в том, как добавить данные в контекст, чтобы панель навигации могла получать их содержимое из базы данных.

Я хотел бы запросить данные в views.py и сделайте это доступным для шаблона, чтобы я мог создать панель навигации.

Спасибо.

Ответ №1:

Нет, вы бы этого не сделали. Вместо этого напишите пользовательский тег шаблона.

 <html>
 ...
<div class="navbar">{% navbar %}</div>
 ...
</html>
  

Комментарии:

1. Я предпочитаю этот подход, потому что вы обращаетесь к базе данных только тогда, когда вам это нужно, а не вслепую для каждого запроса.

2. Я смог решить эту проблему с помощью inclusion_tags в ссылке.

Ответ №2:

Если вам нужно добавить информацию, которая должна быть доступна для всех шаблонов, включая base.html вам следует взглянуть на context_processor.py . Это может добавить информацию в контекст, чтобы на вашей странице были доступны данные в формате avi. Я нашел блог об этом здесь:http://www.b-list.org/weblog/2006/jun/14/django-tips-template-context-processors