gpt4 book ai didi

django 模板抛出 NoReverseMatch 错误

转载 作者:行者123 更新时间:2023-12-04 04:39:53 26 4
gpt4 key购买 nike

我在 View 中有两种方法 create 和 update ,其中 update 接受一个参数,而 create 不接受任何参数。我决定将它们变成只有一个函数 update_create 因为它们没有什么不同。

这是 View 中的新方法的外观:

  def update_create(request, id=None):

这是我的 urls.py:
  url(r'^(\d+)/update/$|create/$', update_create, name='update_create'),

这是我的模板在 templates/list.html 中的外观
  <a href="{% url 'update_create' %}"> Create a new event </a>

使用上述代码时出现此错误:
  NoReverseMatch at /agenda/list/
Reverse for 'update_create' with arguments '()' and keyword arguments '{}' not found.

但是,如果我在我的模板中使用它(我添加了一个参数),它可以正常工作而不会出现任何错误:
  <a href="{% url 'update_create' 1 %}"> Create a new event </a>

有人可以解释发生了什么吗?为什么以前的代码不起作用,为什么新代码起作用?

最佳答案

网址格式 (\d+)期望将数字作为参数提供。要解决此问题,只需提供如下网址:

url(r'^(\d+)/update/$', update_create, name='update_create'),
url(r'^update/$', update_create, name='update_create'),

关于django 模板抛出 NoReverseMatch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19061207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com