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

问题描述 投票:1回答:1

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

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

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

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

django django-templates jinja2 django-bootstrap4
1个回答
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 }}
...
© www.soinside.com 2019 - 2024. All rights reserved.