现在我们已经很熟悉Django的MTV模式了。模板(template)负责如何去展示数据,而视图(view)负责筛选出正确的数据。因此通常来说逻辑都是放到视图中的,但模板也需要一些 和表示相关的逻辑 :比如循环展示(如 {% for ... %}
)、或者以某种特定格式输出(如 {{ ...|date:'Y-m-d' }}
)等,这些功能都是靠模板的 过滤器(filters) 和 标签(tags) 实现的。
Django的模板语言包含了很多内置的过滤器和标签,设计目的是满足应用需要占位逻辑需求。但有的时候这些通用的功能满足不了你的某些需求,这时候就需要自定义过滤器和标签来实现了。
前置条件
要在Django中使用模板过滤器或标签,就首先得 注册 它们。
注册方法如下:
完成后的目录结构如下:
article/ __init__.py views.py models.py # 新增目录 templatetags/ __init__.py # 空文件 my_filters_and_tags.py # 即将写代码的地方 ...