Django4.0 URL调度器-命名URL模式
为了完成反向解析 URL ,你需要像上面那样使用 命名 URL 模式 。用于命名 URL 的字符串可以包含任意字符,并不仅限于 Python 里合法的命名。
当命名 URL 模式时,请选择名称与其他应用名称冲突的名字。如果你命名的 URL 模式 comment
和其他应用程序做了同样的事情,reverse()
查询出的 URL 会是在项目的 urlpatterns
列表里靠后的那个。
在 URL 名称前加入前缀,可以来自app名称(比如 myapp-comment
而不是 comment
),这样可以减少冲突。
如果你想覆盖某个视图,你可以有意选择一些和应用程序 相同的URL名。比如,一个常见的案例是覆盖 LoginView
。Django 的部分和绝大多数第三方 app 假设这个视图有名叫 login
的 URL 模式。如果你有名叫 login
的自定义登录视图,reverse()
将会在 django.contrib.auth.urls
之后寻找你的自定义视图。
如果多个 URL 模式的参数不同,也可以使用相同的名称。除了 URL 名称外, reverse()
会匹配参数的数量和关键字参数的名称。路径转换器也可以引发 ValueError
表示不匹配。