Django - 当前 url 与这些中的任何一个都不匹配

Django - The current url didn’t match any of the these

我有 Django 4.0.4 我尝试了以下 url : http://127.0.0.1:8000/cp2/sbwsec/1076/o2m/section/wseclmts/47/p/element/sbwblmnt/1077/ 但它给我错误页面未找到 (404)

当前路径 cp2/sbwsec/1076/o2m/section/wseclmts/47/p/element/sbwblmnt/1077/ 与其中任何一个都不匹配。

使用 myproject.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:

我有 1370 个模式 - 正确的模式在第 268 行,正如您从调试异常页面中看到的那样

cp2/ (?P\w+)/(?P\d+)/p/(?P\w+) /sbwblmnt/(?P\d+)/$[name='sbwblmnt_epec']

感谢您的帮助

看起来你在模板中写了一个 relative URL,比如:

<a href="wseclmts/47/p/element/sbwblmnt/1077/">link</a>

这会将路径 wseclmts/47/p/element/sbwblmnt/1077/ 附加到已经存在的路径,因此如果您在浏览器访问 /cp2/sbwsec/1076/o2m/section/ 路径时浏览此路径,它将访问 /cp2/sbwsec/1076/o2m/section/wseclmts/47/p/element/sbwblmnt/1077/ 路径。因此,这会导致长 URLs(甚至可能不再符合 2048 个字符的限制。

您应该使用 绝对 路径,例如:

<a href="/cp2/wseclmts/47/p/element/sbwblmnt/1077/">link</a>

因此带有 前导斜线 。这将使浏览器访问 /cp2/wseclmts/47/p/element/sbwblmnt/1077/ 路径。您可以使用 {% url … %} template tag [Django-doc] 构建路径,因此:

<a href="{% url 'sbwblmnt_epec' 'wseclmts' 47 'element' 1077 %}">link</a>

其中第一个参数'sbwblmnt_epec'是视图的名称,接下来的参数是参数的值。这将查看模式并构造 URL 以访问具有给定参数的给定路径。