django - django 中的模板标签与自定义模板标签和过滤器
问题描述
像 simple_tag 这样的模板标签与模板标签标签参考有什么区别?. 为了更好地表达我的问题,是templatetag
用于自定义模板标签和过滤器的目的还是完全用于其他目的?
解决方案
前者 templatetag
用于创建可以在模板中加载和调用的自定义函数。当您有一个需要执行的常见任务时,这很有用,例如,当只给定一个命名空间时,生成一个包含查询字符串的 url:
from django import template
from django.urls import reverse
from urllib.parse import urlencode
register = template.Library()
@register.simple_tag(takes_context=True)
def url_qs(context, namespace):
url = reverse(namespace)
return url + '?' + urlencode(context['querystring'])
后者 templatetag
用于转义 Django 模板引擎将解释为特殊字符的符号,例如。双括号{{
。这个版本的 templatetag 几乎没用,因为你可以只使用HTML 转义码。
例如,如果你想要双括号{{
,使用 templatetag 你必须这样做:
{% templatetag openvariable %}
或使用转义码:
{{
推荐阅读
- c# - 如何按键盘选择列表
之后,右键单击鼠标执行操作 - outlook - 如何以编程方式设置注册表设置以防止 Outlook 删除 VSTO 插件
- python - 如何在 android 上的 kivy 应用程序中使用 gettext?
- android - java.lang.unsatisfiedlinkerror 找不到 dso 来加载 .so 文件。libgnustl_shared 所以是 32 位而不是 64 位
- python - 获取源能力
- vue.js - 部署后某个页面不会加载
- kubernetes - 安装 Kubernetes 仪表板时未找到资源
- firebase - 获取配置文件数据时,使用 Firebase 登录会导致“url!= null”错误
- javascript - 如何使用 jquery 或 javascript 从 div 元素中删除所有以 # 开头的字符?
- typescript - 深度/递归 必需
在特定属性上