-4

我一直在开发一个新的 Django 站点,但我遇到了 url 调度程序的问题。

基本上我需要帮助才能使以下网址正常工作。

/site/aaa-00

/site/aaa-00-00

我已经查看了 django 文档上的 URL 调度程序,现在我更加困惑了。

url(r'^/site/(?P<name>[-\w]+)/$', 'rollout.views.update'),
4

1 回答 1

2

您的正则表达式不会完成这项工作。我希望它看起来更像:

^site/(?P<path>[-\w]+)/$

做你想做的事。两个主要区别:URL 模式不应该与前导斜杠匹配,即斜杠被剥离(或者,更准确地说,它不是 URL 的路径组件的一部分,但这越来越迂腐了);和?Pin 表达式应该为组取一个名字(它被转换成你的视图函数的参数)。

您可能不知道的另一件事:您/在 URLconf 行的末尾有一个尾随,但在您尝试匹配的 URL 中没有。请注意,默认情况下,Django(CommonMiddleware正在运行)将自动重定向以包含尾随/,除非路径已经与 URLconf 中的某些内容匹配;这可以使用配置APPEND_SLASH选项来控制。在您的情况下,这应该“正常工作”,尽管它会导致重定向,因此您不应发出没有尾部斜杠的 URL(或在 URLconf 中使斜杠可选)。

于 2013-01-03T22:57:03.347 回答