2012-05-07 76 views
0

我是想出來的URL模板標籤,並無意中發現了一個問題:Django的基於類的觀點有沒有反向

Caught NoReverseMatch while rendering: Reverse for ''location'' with arguments 
'(<City: New York>,)' and keyword arguments '{}' not found. 

在我的模板文件,我有:

{% url 'location' city_name=city.name %} 

url.py

url(r'^location/(?P<city_name>.*)/$', CityView.as_view(), name="location"), 

models.py

def get_absolute_url(self):                                            
    return "/location/%s" % self.name 
+0

您是否在使用{%load url from future%}? –

+1

最有可能的是,您從文檔引用了您的'{%url%}'標記的代碼,該文檔通常默認爲dev版本。 Django 1.4+研究了一種新式的url模板標籤,它打破了舊版Django的兼容性。始終確保文檔設置爲正在運行的版本Django。 –

回答

4

更新感謝在評論Maik Hoepfel

預Django的1.5,你不需要在'馬克:

{% url 'location' city_name=city.name %} 

但是您可以通過從未來模塊加載url使他們。使用{% load url from future %}而不是{% load url %}

在你的情況下,預Django的1.5和無URL的未來版本中,你可以使用:

{% url location city_name=city.name %} 

我懷疑它不能找到你的名字的價值,因爲它是從字面上找'location'

+0

請注意,從Django 1.5開始,您將需要引號。從Django 1.3開始,如果你使用{%load url from future%},就可以使用引號。 –

+0

@Maik。謝謝,我目前正在更新一個或兩個預期1.5版本的項目,以幫助我,並使這個答案更好! – 2013-01-12 11:31:50

+1

https://github.com/futurecolors/django-future-url/使轉換無痛苦。 –

0

對不起,我是新來的,所以我不知道這是否已經解決了您的問題。如果它還沒有解決,errormessage在我看來,它說你有positionell參數和沒有關鍵字參數。

反轉函數正在尋找接收關鍵字參數的視圖。 urls.py條目正在創建關鍵字參數?P。 ?

(。*)請檢查您是否已經在urls.py另一個項目,其使用位置,參數不一樣在P < ...>

背景:這是不可能的使用positionell和關鍵字在同一時間的論點。

相關問題