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

时间:2019-01-10 13:46:46

标签: django django-templates jinja2 django-bootstrap4

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

如何通过例如注册过滤器或标签来实现此目的?

请注意,我使用了一些库(例如bootstrap4表单),并且页面上充满了{{}}标签。但是我想在最终呈现的html页面中查找并替换所有“ black *”和'red *'。

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

1 个答案:

答案 0 :(得分:1)

这对我有用

# 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 }}
...