定义“全局变量”在Django模板 [英] Defining "global variable" in Django templates
问题描述
我正在做一些事情:
{%extends'base.html'%}
{% url myapp.views.dashboard对象作为object_url%}
{%block sidebar%}
... {{object_url}} ...
{%endblock%}
{ %block content%}
... {{object_url}} ...
{%endblock%}
Django文档说,url templatetag可以在上下文中定义一个变量,但是在以下块中,我没有获取 object_url
的任何值。 p>
如果我将url templatetag放在每个块的开头,它可以工作,但我不想重复自己。
任何人都知道更好的解决方案?
如果URL是具体的视图,您可以传递URL你的看法如果URL在你的模板中需要真正的全局,你可以把它放在上下文处理器:
def object_url(request):
return {'object_url'反向('myapp.views.dashboard')}
I'm doing something like:
{% extends 'base.html' %}
{% url myapp.views.dashboard object as object_url %}
{% block sidebar %}
... {{ object_url }} ...
{% endblock %}
{% block content %}
... {{ object_url }} ...
{% endblock %}
Django documentation says url templatetag can define a variable in context, but I don't get any value for object_url
in the following blocks.
If I put the url templatetag at the beginning of each block, it works, but I don't want to "repeat myself".
Anyone knows a better solution?
If the URL is view specific, you could pass the URL from your view. If the URL needs to be truly global in your templates, you could put it in a context processor:
def object_url(request):
return {'object_url': reverse('myapp.views.dashboard')}
这篇关于定义“全局变量”在Django模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!