0

私はDjangoが初めてで、困惑しています。Django 1.4 を使用しています。私のテンプレートの1つの中で、このコードは機能します:

{% for element0, element1 in menu.elements %}
    <li class='menu_{{ name }}'><a href="{% url users.views.home %}">{{ element0 }}</a></li>
{% endfor %}

...しかし、このコードは「NoReverseMatch」エラーをスローします:

{% for element0, element1 in menu.elements %}
    <li class='menu_{{ name }}'><a href="{% url element1 %}">{{ element0 }}</a></li>
{% endfor %}

...「element1」変数が「users.views.home」を保持しているにもかかわらず。私はこれに対する解決策が本当に簡単であることを考えています/望んでいます... Djangoテンプレート内の変数処理について明らかな何かを見逃していますか?

url 組み込み関数のドキュメントを参照しましたが、役に立ちませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

1

これをテンプレートに追加する必要があると思います。

{% load url from future %}

最初の呼び出しをに変更します

 {% url 'users.views.home' %}

リンク先のドキュメントの上位互換性に関する注意事項を参照してください

于 2012-07-24T18:57:36.130 に答える
1

このように書くのは悪い考え{% url 'users.views.home' %}です。名前付きの url -{% url 'users_home' %}を使用することをお勧めします。将来的には保守が容易になります。たとえば、def home(request)fromusers.viewsを toに移動することにしたaccount.views場合、すべてのテンプレートで出現するすべての URL を置き換える必要があります。ただし、名前付き URL を使用する場合は、変更するだけですurls.py

于 2012-07-24T19:40:37.137 に答える