定义“全局变量”在Django模板 [英] Defining "global variable" in Django templates

查看:138
本文介绍了定义“全局变量”在Django模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一些事情:

  {%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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆