【发布时间】:2017-02-22 17:41:59
【问题描述】:
在我们的一个 Django 应用程序中,我们为视图定义了多个 url。
第一个 URL 将一个通用特征与 pk 和第二个匹配组匹配。 第二个 URL 匹配一个带有 pk 的子特征。
在这两个 url 之间定义了更多的 url,因此一次查看它们并不容易。或者,例如,子功能将有自己的 url.py。
# old urls.py
url(r'^(?P<pk>\d+)/', views.b),
url(r'^subfeature/', views.a),
一段时间后,pk中也允许使用字母,所以我们现在必须将\d+更改为[^/]+。
# new urls.py
url(r'^(?P<pk>[^/]+)/', views.b),
url(r'^subfeature/', views.a),
现在由于 url 未正确匹配,子功能中断,'subfeature' 在第一个 url 中匹配为 pk。
如何避免在更改 url 正则表达式时破坏其他 url?
【问题讨论】:
-
如果改变正则表达式的顺序会怎样?