我有一个基本模板文件(base.html),每个其他模板都扩展到它,并使用其块生成内容.某些变量(例如nav_obj)用于基本模板文件中.
视图:
nav_obj = NavigationObject.objects.all()
Run Code Online (Sandbox Code Playgroud)
基本模板:
{% for object in nav_obj %}
<a href="{{ object.link }}">{{ object.title }}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
目前,我需要在每个视图中传递nav_obj.有没有办法自动发送?
我试图将数据传递给布局'base.html'.我目前正在通过将数据存储request.session在'base.html'请求对象中并通过请求对象访问它来实现.
有没有办法传递数据'base.html'而不必从每个视图传递数据?
我做的事情如下:
{% extends 'base.html' %}
{% url myapp.views.dashboard object as object_url %}
{% block sidebar %}
... {{ object_url }} ...
{% endblock %}
{% block content %}
... {{ object_url }} ...
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
Django文档说url templatetag可以在上下文中定义变量,但是我object_url在以下块中没有得到任何值.
如果我将url templatetag放在每个块的开头,它可以工作,但我不想"重复自己".
谁知道更好的解决方案?