我有一個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 %}
這工作,但現在我想知道是否有解決這個讓我沒有更好的方法在所有視圖中重複相同的代碼。
在我看來[Django Classy Tags](https://django-classy-tags.readthedocs.io/en/latest/)是一個優點。 –