my_app
的urls.py配置文件的两行如下所示。它们几乎相同,只有第二个附加了uuid4
# preview views to allow us to preview stuff
url(r'^(?P<hash>\w+)/preview/$', Start.as_view(), {'preview':True}, name='preview'),
url(r'^(?P<hash>\w+)/preview/(?P<uuid>[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12})/$', PreviewController.as_view(), name='previewcontroller'),
以下网址无误地运作:
以下网址产生以下错误(所有hash
值均有效,但不应影响网址解析):
内部服务器错误:/ my_app / 841211121 / preview /
NoReverseMatch at / my_app / 841211121 / preview / Reverse for 带有参数'()'和关键字参数的'previewcontroller' '{&#39; uuid':无,'哈希':'841211121&#39;}'找不到。 1种模式 尝试: [&#39;(ΔP\ W +)????程序my_app / /预览/(P [A-f0-9] {8} - [A-f0-9] {4} - 4 [A-f0-9 ] {3} - [89ab] [A-f0-9] {3} - [A-f0-9] {12})/ $&#39;?]
请求方法:GET请求URL: http://example.com/my_app/841211121/preview/ Django版本:1.10 ......
Regex101.com说网址应该匹配(当然有转义斜线)。为什么地球上第二组网址与preview
网址不匹配,以及当没有previewcontroller
字符串附加到网格时,是什么导致网址解析程序尝试将它们与uuid
匹配URL?
答案 0 :(得分:1)
Django正确解析/my_app/841211121/preview/
并运行正确的视图。
Django运行Start
视图时出现问题。看起来reverse()
来电或{% url %}
模板标记失败。