2012-07-24 26 views
0

我是Django的新手,感到困惑。使用Django 1.4。裏面的我的模板之一,此代碼的工作:Django的url標籤 - 靜態與動態「path.to.view」參數

{% 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 %} 

...儘管在「部件1」變量保存的事實'users.views.home'。我在想/希望這個解決方案非常簡單......我錯過了Django模板中變量處理的明顯之處?

我已經諮詢了documentation的URL內置函數無濟於事。任何幫助將不勝感激。

回答

1

我認爲你需要把它添加到您的模板:第一個電話

{% load url from future %} 

,並切換到

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

看到了向前兼容性注意在您鏈接到

+0

完美。 +1,系統允許我在4分鐘內接受。像魅力一樣工作。 – codemonkey 2012-07-24 19:01:15

+0

很高興聽到它。謝謝。 – scytale 2012-07-24 19:02:35

1

的文檔這是個不好的主意,寫這樣的{% url 'users.views.home' %},更好地使用命名的網址 - {% url 'users_home' %},這將很容易在未來保持。例如,如果您決定將def home(request)users.views移動到account.views,則需要替換所有模板中的所有網址。但是,如果您使用指定的網址,則只需更改urls.py

+0

+1 - 感謝您的提示 – codemonkey 2012-07-24 20:32:30