【发布时间】:2017-07-05 09:19:00
【问题描述】:
我在将 url 路由到 Django 中的视图时遇到问题。具体来说,我使用带有以下模式的 URL:
url(r'^(?P<id>[A-Za-z0-9\ ]+)/(?P<subid>[A-Za-z0-9\ ]+)/managetables$', views.compiledata, name='compiledata')
一个示例网址是My data/current/managetables。我检查了正则表达式在 www.pyregex.com (example) 上返回了预期的捕获组
但是,实际访问 url 并不会导致视图被调用。最重要的是,它适用于高度相似的 url:
url(r'^(?P<id>[A-Za-z0-9\ ]+)/(?P<subid>[A-Za-z0-9\ ]+)/managetab$', views.compiledata, name='compiledata')
如果我访问My data/current/managetab,视图会按预期调用。此外,在 urlconf 中附加一个“/”也可以 - 但我不清楚为什么,即:
url(r'^(?P<id>[A-Za-z0-9\ ]+)/(?P<subid>[A-Za-z0-9\ ]+)/managetables/$', views.compiledata, name='compiledata')
访问My data/current/managetables导致重定向到调用视图的My data/current/managetables/。
感谢任何关于如何解决此问题的提示。
【问题讨论】:
-
你有完整的 noreversematch 堆栈跟踪吗? (另外,空格在 url 中并不是很好用,你应该把它们 slugify)
-
感谢您的评论 - 一旦我有更多信息,我会尽快回复。
-
我目前无法在我所在的机器上复制该问题 - 但代码相同。我会检查原始机器上是否仍然存在问题。