基于django类的视图没有反转

时间:2012-05-07 19:46:32

标签: django django-urls

我正在尝试使用网址模板标签并偶然发现了一个问题:

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

2 个答案:

答案 0 :(得分:4)

感谢评论中的Maik Hoepfel

Pre Django-1.5,您不需要'标记:

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

但是您可以通过从未来模块加载url来启用它们。而不是{% load url %}使用{% load url from future %}

在你的情况下,预先Django 1.5并且没有未来版本的url,你可以使用:

{% url location city_name=city.name %}

我怀疑它无法找到您的名字值,因为它确实在寻找'location'

答案 1 :(得分:0)

抱歉,我是新来的,所以我不知道这是否已经解决了你的问题。如果它还没有解决,那么错误消息在我看来它说你有positionell-arguments而没有关键字参数。

反向函数正在寻找一个接受关键字参数的视图。 urls.py条目正在创建关键字参数?P。

请检查urls.py中是否有其他条目使用位置参数,如(。*)而没有?P&lt; ...&gt;

背景:不可能同时使用positionell和关键字参数。