Включена функция представления Django для навигационной панели
У меня есть страница только для панели навигации и я включил ее в базовую страницу. Теперь у меня есть меню в этой навигационной панели и ссылки, которые я получаю из базы данных (эти ссылки - мои категории).
Но как я могу вызвать свою функцию в представлении без пути, потому что мне не нужен путь для панели навигации? И мне нужно, чтобы функция представления получала данные из базы данных.
models.py
class Item(models.Model):
title = models.CharField(max_length=100)
price = models.FloatField()
discount_price = models.FloatField(blank=True, null=True)
category = models.CharField(choices=CATEGORY_CHOICES, max_length=2)
label = models.CharField(choices=LABEL_CHOICES, max_length=1)
slug = models.SlugField()
description = models.TextField()
info = models.TextField(default="Informacion a Completar")
image = models.ImageField(blank=True)
views.py
def CategoryView(request):
context = {
'items' : Item.objects.all()
}
return render(request, 'categories_bar.html', context=context)
categories_bar.html
<li class="nav-item"></li>
{% for category in items %}
<div> {{ items.category }} </div>
{% endfor %}
</li>
base.html
{% include "categories_bar.html" %}
Вы можете использовать блочные теги следующим образом:
base.html:
<nav>
<ul>
{% block categories %}{% endblock %}
</ul>
</nav>
<!-- replace navbar code with yours -->
categories_bar.html:
{% block categories %}
{% for category in items %}
<li class="nav-item"></li>
<div> {{ category.category }} </div>
</li>
{% endfor %}
{% endblock %}