django.core.urlresolver.reverse - NoReverseMatch:“...”的反向参数“()”和关键字参数“”未找到
Posted
技术标签:
【中文标题】django.core.urlresolver.reverse - NoReverseMatch:“...”的反向参数“()”和关键字参数“”未找到【英文标题】:django.core.urlresolver.reverse - NoReverseMatch: Reverse for '...' with arguments '()' and keyword arguments '' not founddjango.core.urlresolver.reverse - NoReverseMatch:“...”的反向参数“()”和关键字参数“”未找到 【发布时间】:2013-12-22 06:36:43 【问题描述】:我在视图中的 url 解析有问题:
# URLS.PY
from django.conf.urls.defaults import url, include, patterns
from acomea.contact.cms.views import (
ConfirmPrivacyFormView, CancelContactTemplateView, ConfirmPrivacyDataTemplateView, CancelMailSentTemplateView
)
urlpatterns = patterns('',
url(
r'^',
ConfirmPrivacyFormView.as_view(),
name="contact_contact_confirm_privacy_form"
),
url(
r'^/data-confirmed/$',
ConfirmPrivacyDataTemplateView.as_view(),
name="contact_contact_confirm_privacy_accept_data"
),
url(
r'^/mailsent/',
CancelMailSentTemplateView.as_view(),
name="contact_contact_confirm_privacy_delete_mailsent"
),
url(
r'^/remove-contact/',
CancelContactTemplateView.as_view(),
name="contact_contact_confirm_privacy_delete_contact"
),
)
# resolve
>>>from django.core.urlresolver import reverse
>>>reverse("contact_contact_confirm_privacy_accept_data")
NoReverseMatch: Reverse for 'contact_contact_confirm_privacy_accept_data' with arguments '()' and keyword arguments '' not found.
我在其他时候也遇到过这个问题,同样是在get_urls()
方法中定义的 url 的管理员中。我试图在互联网上搜索任何合适的解决方案,但没有一个对我有用。
有什么帮助吗?
谢谢 L.
【问题讨论】:
尝试去掉头斜线? 【参考方案1】:尝试:
1. 像r'^/mailsent/$'
这样的网址添加$
2. 使用 django.conf.urls import patterns, include, url
代替 否则:
D:\Program Files (x86)\python273\lib\site-packages\django\conf\urls\defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated;改用 django.conf.urls
弃用警告)
3.from django.core.urlresolvers import reverse
注意urlresolvers末尾的's'
4. 可以改用reverse_lazy
【讨论】:
以上是关于django.core.urlresolver.reverse - NoReverseMatch:“...”的反向参数“()”和关键字参数“”未找到的主要内容,如果未能解决你的问题,请参考以下文章