Django {{block.super}}无法在特定情况下工作

时间:2013-09-20 20:59:05

标签: javascript django django-templates

我正在尝试扩展包含此块的模板:

    {% block headerjs %}
    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}js/bootstrap.min.js"></script>
    <script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
    {% endblock %}

要扩展它,我正在使用{{ block.super }}

{% block headerjs %}
{{ block.super }}
<script type="text/javascript" src="{{ STATIC_URL }}js/formhandler.js"></script>
{% endblock %}

它无效,{{block.super}}为空。我注意到<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>是原因。当我不加载此脚本时,一切正常。有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

自Django 1.5起,您必须在{% url %}模板标记中在视图名称周围添加引号。否则,它现在将被视为上下文变量(因此,如果存在,它将搜索变量django并获取其属性views,依此类推...)。
正如评论中指出的那样,正确的版本是:

<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>

可能之前它正在使用Django&lt; = 1.4。