问题是header.html
部分始终包含保留在数据库中的类别字典。包括带参数的部分
{% include "_partials/header.html" with categories %}
每次渲染部分时我都需要传递类别字典
render("index.html", {"flowers":flowers, "categories":categories})
render("details.html", {"flower":flower, "categories":categories})
...
是否有任何解决方案,header.html
部分始终包含categories
字典。
答案 0 :(得分:3)
使用包含标签解决它。
在templatetags/tags.py
文件中创建了自定义标记
from django import template
from flowers.models import Category
register = template.Library()
@register.inclusion_tag('_partials/nav.html')
def show_categories():
categories = Category.objects.all()
print categories
return {'categories':categories}
在_partials/nav.html
文件
<nav>
<ul>
{% for category in categories %}
<li><a href="{% url 'category:detail' category.id' %}">{{ category.name }}</a></li>
{% endfor %}
</ul>
</nav>
最后,使用了那个标签
{% load tags %}
{% show_categories %}
答案 1 :(得分:1)
您应该使用custom inclusion tag。