1

我在将 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 上的预期捕获组(示例

但是,实际访问 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/调用视图。

我很感激任何提示如何解决这个问题。

4

1 回答 1

0

好的,虽然问题确实只在两台机器中的一台上出现,但对 url 进行 slugify 的提示解决了这个问题。对于遇到类似问题的任何人,可以在此处找到有关 slugify 的更多信息: Tango with Django's Chapter 7以及Django Documentation

于 2017-02-20T09:37:45.673 回答