我正在尝试使用网址模板标签并偶然发现了一个问题:
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 :(得分: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和关键字参数。