0

我正在尝试 url 模板标签并偶然发现一个问题:

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

在我的模板文件中,我有:

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

网址.py

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

模型.py

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

2 回答 2

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

我怀疑它找不到您的 name 值,因为它实际上是在寻找'location'.

于 2012-05-07T19:52:46.133 回答
0

对不起,我是新来的,所以我不知道这是否已经解决了你的问题。如果它还没有解决,错误消息在我看来它说你有位置参数并且没有关键字参数。

The reverse function is looking for a view witch accepts keyword-arguments. The urls.py entry is creating a keyword-argument ?P.

Please check if you have another entry in urls.py which is using positional-arguments like (.*) without the ?P<...>

Background: It is not possible to use positionell and keyword arguments at the same time.

于 2013-02-03T19:24:38.810 回答