gpt4 book ai didi

python - 具有多个url匹配的Django url配置

转载 作者:太空狗 更新时间:2023-10-30 01:43:24 26 4
gpt4 key购买 nike

在我们的一个 Django 应用程序中,我们为 View 定义了多个 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?

最佳答案

对此没有统一的答案。任何使 url 更通用的更改都可能破坏它后面的其他 url。

在这种情况下,您可以交换 url,这样 subfeature/ 将匹配子功能 url,而任何其他 url 将失败并匹配 views.b:

url(r'^subfeature/', views.a),
url(r'^(?P<pk>[^/]+)/', views.b),

关于python - 具有多个url匹配的Django url配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40023708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com