Django включает шаблон, повторяющийся во всех url, но получает данные из основного url
У меня есть один html шаблон для основного тела и в каждом url это основное тело фиксировано. но данные из этого фиксированного тела отображаются только в основном url или в одном url. например, у меня есть папка входящих сообщений и количество сообщений в ней номер сообщения в ящике
В каждом url у меня есть это сообщение, но в главном url или представлении я отправляю данные в шаблон, например, если вы перейдете в главный url, то номер на inbox покажет, но если вы перейдете в другой url, потому что данные не в вашем представлении, то у вас нет номера. Как я могу это исправить!!!? или мой вопрос в том, как включить шаблон получить данные из специального url в каждом url в django!?
Нет, Django не предоставляет никаких специальных URL
концепций, Но вы можете архивировать эти вещи следующим образом...
views.py
def navbar_counters(request):
a={'inbox':10,'mesages':20}
return a
def Oneview(request):
counters= navbar_counters(request)
context = {'counters':counters}
return render(request,'index.html',context)
def Twoview(request):
counters= navbar_counters(request)
context = {'counters':counters}
return render(re
quest,'page2.html',context)
index.html
{% block body %}
<h1>Page - 1</h1>
<div class="container-fluid mt-5 ">
<div>
{% for i,j in counters.items %}
<button type="button" class="btn btn-primary position-relative ms-5 ">
{{i}}
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
{{j}}+
</span>
</button>
{% endfor %}
</div>
</div>
{% endblock body %}
вывод браузера
NOTE - Вам необходимо вызывать функцию navbar_counters(request)
в каждой функции представления, я имею в виду, что вам необходимо вызвать следующий фрагмент кода в каждой функции представления.
counters= navbar_counters(request)
context = {'counters':counters}