在最终渲染之前替换django模板中的char

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在最终渲染之前替换django模板中的char相关的知识,希望对你有一定的参考价值。

我想在Django模板中以红色模板制作我的所有星号(*)。 (例如,表格标签*符号指向该字段是必需的。但是当将*放在表单字段的标签中时,它会像往常一样呈现为黑色。

我如何通过注册过滤器或标签来实现这一目标?

请注意,我使用了一些库(例如bootstrap4表单),页面中充满了{{}}标记。但是我想在最终渲染的html页面中找到并替换所有; black *'和'red *'。

编辑:我使用django-bootstrap4,所以我只是在我的模板中使用{% bootstrap_form form %}。 (因此无法明确访问标签文本)如何实现目标?

答案

这对我有用

# templatetags/custom_tags.py
from django import template

register = template.Library()

@register.filter
def mark_as_required(text):
    return '<span style="color:red">{text}</span>'.format(text=text)
# templates/xxx.html
...
{% load custom_tags %}
...
{{ '*'|mark_as_required|safe }}
...

以上是关于在最终渲染之前替换django模板中的char的主要内容,如果未能解决你的问题,请参考以下文章

Django-模板语言和过滤器

django学习第三天

Django - 在渲染到模板之前翻译变量

07-Django模板

如何更新 django 模板中的渲染变量?

客户端的 Django 模板渲染