Django’da yeniyim.Menüyü tüm sayfalarda include ile çağırıyorum. Tüm view’lara veri tabanından çekilen bilgileri göndermem gerekiyor. Bunun daha kısa bir yolu var mı?
view:
def kategoriler(request):
kats = categoryModel.objects.all()
return render(request,"kat.html",{'kat':kats})
def test(request):
return render(request,"test.html",{})
urls:
path('kat/', kategoriler,name="kat"),
path('test/', test,name="test"),
kat.html:
{% extends 'base.html' %}
{% block title %}Kategoriler{% endblock %}
{% block body %}
<div class="container">
{% include 'navbar.html' %}
</div>
{% endblock %}
test.html:
{% extends 'base.html' %}
{% block title %}Test{% endblock %}
{% block body %}
<div class="container">
{% include 'navbar.html' %}
</div>
{% endblock %}
navbar.html:
<nav>
<ul>
<li>
Anasayfa
</li>
<li class="dropdown">
<a data-toggle="dropdown">
Kategoriler
</a>
<div class="dropdown-menu">
{% for cat in kat%}
<a class="dropdown-item" href="#">{{cat.kategori_adi}}</a>
{% endfor %}
</div>
</li>
</ul>
</nav>
Menü, ‘/kat’ sayfasında doğru şekilde çalışıyor ama ‘/test’ sayfasında veri tabanından çektiğim verileri, ‘test’ view’da paramtre olarak vermediğim için dropdown menü boş. Tüm view’larda default olarak veritabanı nesnesini (kats = categoryModel.objects.all()
) nasıl verebilirim. Bunu kısa bir yolu var mıdır?