У меня есть шаблон Django, назовем его index.html, который разделен на 3 части (заголовок, содержимое и нижний колонтитул). В разделе заголовка у меня есть панель поиска, которая включает раскрывающееся меню, которое позволяет пользователю выбирать из него опцию и искать вещи на основе выбранного варианта. Я хочу, чтобы раздел заголовка включался во все мои будущие виды/шаблоны и по-прежнему отображал раскрывающееся меню со всеми параметрами.Django как использовать функции просмотра, общие для всех представлений
Это то, что я в данный момент у меня в файле представления
def index(request):
return render(
request,
'home.html',
{'categories': get_all_categories()}
)
def cart(request):
return render(request, 'cart.html', {'categories': get_all_categories()})
def help(request):
return render(request, 'help.html', {'categories': get_all_categories()})
def about(request):
return render(request, 'about.html', {'categories': get_all_categories()})
def contact(request):
return render(request, 'contact.html', {'categories': get_all_categories()})
def search(request):
return render(request, 'search.html', {'categories': get_all_categories()})
def get_all_categories():
return Category.objects.all()
Это то, что у меня есть cart.html {% распространяется "index.html" %}
{% block content %}
<div>
<h1> My Cart </h1>
</div>
{% endblock %}
Это то, что contact.html имеет {% распространяется "index.html" %}
{% block content %}
<div>
<h1> Contact </h1>
</div>
{% endblock %}
Т его является то, что home.html содержит {% проходит «index.html»%}
{% block content %}
<div>
<h1> Home </h1>
</div>
{% endblock %}
Это работает прямо сейчас, но мне было интересно, если есть лучший способ решить эту проблему, так что я не должен повторите один и тот же код во всех представлениях.
А по-моему [Джанго Классный Метки] (https://django-classy-tags.readthedocs.io/en/latest/) является плюсом. –