Django 如何自定义过滤器
时间: 2023-12-10 11:59:52 浏览: 100
在 Django 中,可以通过自定义过滤器来扩展模板引擎的功能。自定义过滤器是一个 Python 函数,它接受一个或多个参数,并返回一个处理过的值。
下面是一个示例,演示如何创建一个自定义过滤器来将字符串转换为小写:
1. 在一个应用的目录中创建一个名为 `templatetags` 的子目录(如果该目录不存在)。
2. 在 `templatetags` 目录中创建一个 Python 模块,例如 `myfilters.py`。
3. 在 `myfilters.py` 中定义一个函数,例如 `lowercase`:
```
from django import template
register = template.Library()
@register.filter(name='lowercase')
def lowercase(value):
return value.lower()
```
4. 在模板中使用新的过滤器:
```
{% load myfilters %}
{{ mystring|lowercase }}
```
在这个例子中,`register.filter()` 装饰器用于将 `lowercase` 函数注册为模板标签库中的过滤器。`name` 参数指定了过滤器在模板中的名称,此处为 `lowercase`。
注意,如果你的应用命名为 `myapp`,则 `templatetags` 目录中的 Python 模块名必须为 `myapp_tags`,而不是 `myfilters`。这是因为 Django 只会自动搜索以 `_tags` 结尾的 Python 模块来查找自定义模板标签库。
阅读全文