【问题标题】:Django reverse url with parameters to a class based view带有参数的 Django 反向 url 到基于类的视图
【发布时间】: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 中的一个标准,它也使其他程序更容易使用它(无需深入细节......)

标签: python django hyperlink django-class-based-views


【解决方案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 文档非常好。基于类的视图部分有点空洞,但希望将来会充实。
  • 这是未来,基于类的通用视图文档仍然缺乏。感谢您的回答 - 它也帮助了我。
猜你喜欢
  • 2012-01-25
  • 1970-01-01
  • 2012-10-23
  • 2017-11-03
  • 2016-03-31
  • 1970-01-01
  • 2011-09-10
  • 2014-02-16
  • 2018-03-12
相关资源
最近更新 更多