python - 如何在我的 django 项目中创建自定义模板标签
问题描述
我一直在尝试在我的项目中创建一个自定义模板标签,但它不起作用
这是我的结构化项目:
我在我的索引目录中创建了一个名为 templatetags > 的文件夹__init__.py , extras.py
,在 extras 文件中:
from django import template
register = template.Library()
def cut(value):
return value.replace("no", 'yes')
模板:{% load poll_extras %}
但我得到了这个
解决方案
我在我的索引目录中创建了一个文件夹,名为
templatetags
>__init__.py
,extras.py
,在 extras 文件中。
您应该将此添加到应用程序中。因此,在根目录中,您拥有应用程序的目录,并在该应用程序目录下创建一个templatetags
目录。
app_name # ← name of the app
templatetags/
__init__.py
extra.py
此应用程序应该是已安装的应用程序,因此您在INSTALLED_APPS
设置 [Django-doc]中添加应用程序的名称:
# settings.py
INSTALLED_APP = [
# …,
'app_name',
# …,
]
您还需要注册模板标签:
# app_name/templatetags/extra.py
from django import template
register = template.Library()
@register.tag # ← register the template tag
def cut(value):
return value.replace("no", 'yes')
@register.filter
如果你想注册一个模板过滤器,而不是模板标签,你应该使用它。
推荐阅读
- wso2 - 调用管理服务 wso2 错误 403 - 禁止
- vue.js - Nuxt.js - 如何在组件中加载插件
- android - 改变方向recyclerview卡大小变化
- ruby-on-rails - Rails 使用连接检索重复的列
- javascript - 如何在样式化组件中键入 attrs 和样式道具 - React
- docker - 重启docker对k8s集群有什么影响
- r - 如何整理列是虚拟变量而单元格值是观察名称的数据集?
- javascript - 如何更改 mat-paginator 工具提示位置?
- javascript - OnChange 处理程序 ReactJS?
- php - 自定义搜索过滤器 - Yajra 数据表服务