带有参数的 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 到基于类的视图的主要内容,如果未能解决你的问题,请参考以下文章