Django4 中文入门教程 Django4.0 URL调度器-命名URL模式

2024-02-25 开发教程 Django4 中文入门教程 匿名 4

为了完成反向解析 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​ 表示不匹配。