4

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

    {% 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>就是原因。当我不加载此脚本时,一切正常。有谁知道为什么?

4

1 回答 1

1

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

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

也许它以前可以工作,因为您使用的是 Django <= 1.4。

于 2014-02-28T21:50:59.870 回答