接收错误:使用参数“()”和未找到关键字参数反向

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 反向 url,但使用关键字失败

Django 1.10.2 错误“NoReverseMatch at”,“未找到带有参数 '()' 和关键字参数 '' 的 'django.contrib.auth.views.login' 的反向。

未找到带有参数“()”和关键字参数“”的“登录”的反向操作

未找到带有参数“()”和关键字参数“”的“send_referral_code”的反向

“未找到带有参数 '()' 和关键字参数 '' 的 '' 的反向操作。”

未找到带有参数“(”,)”和关键字参数“”的“比率”的反向