带有参数的 Django 反向 url 到基于类的视图

Posted

技术标签:

【中文标题】带有参数的 Django 反向 url 到基于类的视图【英文标题】:Django reverse url with parameters to a class based view 【发布时间】:2012-01-25 04:31:10 【问题描述】:

我刚开始学习 python 和 django,我有一个问题。 我得到了将功能视图转换为基于类的视图的任务。但是我的链接现在不起作用了。

这些来自 urls.py:

url(r'^$', ContactIndex.as_view()),
url(r'^add$', ContactAdd.as_view()),
url(r'^([0-9]+)/update$', ContactUpdate.as_view()),
url(r'^([0-9]+)/view$', ContactView.as_view()),

这是我的链接:

% url rtr_contact.views.ContactView contact.id %

但这不起作用它说:

Caught NoReverseMatch while rendering: Reverse for 'rtr_contact.views.ContactView' with arguments '(20L,)' and keyword arguments '' not found.

【问题讨论】:

你应该在你的 url 格式后面加上一个斜杠。它是 Django 中的一个标准,它也使其他程序更容易使用它(无需深入细节......) 【参考方案1】:

为了方便 url 反转,我建议您始终使用name your url patterns。

url(r'^$', ContactIndex.as_view(), name="contact_index"),
url(r'^add$', ContactAdd.as_view(), name="contact_add"),
url(r'^([0-9]+)/update$', ContactUpdate.as_view(), name="contact_update"),
url(r'^([0-9]+)/view$', ContactView.as_view(), name="contact_view"),

然后在模板中:

% url contact_view contact.id %

【讨论】:

谢谢,它成功了。我希望 django 的文档更容易。 我认为总的来说,Django 文档非常好。基于类的视图部分有点空洞,但希望将来会充实。 这是未来,基于类的通用视图文档仍然缺乏。感谢您的回答 - 它也帮助了我。

以上是关于带有参数的 Django 反向 url 到基于类的视图的主要内容,如果未能解决你的问题,请参考以下文章

Django 基于类的视图上的 success_url 的反向抱怨循环导入

按函数名称的 Django 反向基于类的视图不起作用

NoReverseMatch django 基于类的视图

带有 url 问题的基于 Django 类的视图

Django 使用 URL 参数在基于类的视图中查询数据库

如何在 django 的 ajax url 中传递 kwargs?未找到带有参数 '('',)' 的 '' 的反向操作。尝试了 1 种模式:['partners/analytics/(?P<id