接收错误:使用参数“()”和未找到关键字参数反向
Posted
技术标签:
【中文标题】接收错误:使用参数“()”和未找到关键字参数反向【英文标题】:Receiving error: Reverse for with arguments '()' and keyword arguments not found 【发布时间】:2013-07-22 23:39:41 【问题描述】:在我的 Django 模板中创建链接时出错。
我的模板如下所示:
<a href="% url 'location_detail' pk=location.id %"> location.name </a>
我的 urls.py 看起来像:
url(r'^location(?P<pk>\d+)/$', views.location_detail, name="location_detail"),
我的看法是这样的:
def location_detail(request, pk=None):
我得到错误:
Reverse for views.location_detail with arguments '()' and keyword arguments 'u'pk': 1L' not found.
我正在使用 Django 1.5 和 python 2.7.2
谢谢!
【问题讨论】:
移除模板调用中的pk= 【参考方案1】:问题是我在主项目 urls.py 上有一个命名空间:
url(r'^com/', include('com.urls', namespace="com")),
将网址更改为:
% url 'com:location_detail' pk=location.id %
成功了
【讨论】:
哇,我不知道反向命名空间问题,这篇文章确实成功了。【参考方案2】:您已为您的 url 模式命名,因此您应该在 % url %
调用中使用该名称:
% url 'location_detail' pk=location.id %
【讨论】:
以上是关于接收错误:使用参数“()”和未找到关键字参数反向的主要内容,如果未能解决你的问题,请参考以下文章
Django 1.10.2 错误“NoReverseMatch at”,“未找到带有参数 '()' 和关键字参数 '' 的 'django.contrib.auth.views.login' 的反向。
未找到带有参数“()”和关键字参数“”的“send_referral_code”的反向