my_app
的url.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'),
以下URL正常工作:
以下url产生以下错误(所有hash
值都有效,但不应影响url分辨率):
Internal Server Error: /my_app/841211121/preview/
NoReverseMatch at /my_app/841211121/preview/ Reverse for ‘previewcontroller’ with arguments ‘()’ and keyword arguments ‘{'uuid’: None, ‘hash’: ‘841211121'}’ not found. 1 pattern(s) tried: ['my_app/(?P\w+)/preview/(?P[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12})/$']
Request Method: GET Request URL: http://example.com/my_app/841211121/preview/ Django Version: 1.10...
Regex101.com说url应该匹配(当然是转义斜杠)。究竟为什么第二组url与preview
url不匹配,当url没有附加uuid
字符串时,是什么促使url解析器尝试将它们与previewcontroller
匹配
Django正在正确解析
/my_app/841211121/preview/
并运行正确的视图当Django运行
Start
视图时,问题就出现了。看起来reverse()
调用或{% url %}
模板标记失败相关问题 更多 >
编程相关推荐