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 に答える