django包含内置的url转换器,有int、uuid等。有时候这些内置的url转换器并不能满足我们的需求,因此django给我们提供了一个接口可以让我们自己定义自己的url转换器。
自定义url转换器按照以下五个步骤来走就可以了:
- 定义一个类,直接继承自object就可以了。
- 在类中定义一个属性regex,这个属性是用来限制url转换器规则的正则表达式。
- 实现to_python(self,value)方法,这个方法是将url中的值转换一下,然后传给视图函数的。
- 实现to_url(self,value)方法,这个方法是在做url反转的时候,将传进来的参数转换后拼接成一个正确的url。
- 将定义好的转换器,使用
django.urls.converters.register_converter
方法注册到django中。 - 把这个转换器命名为 converters.py 并在 _init_.py 中导入,这样才能执行这段代码。
示例代码如下:
from django.urls import register_converter
class CategoryConverter(