我目前正在研究一些Django模板,并希望在必填字段标签后加上星号。
首先,我发现这种语法运行得很好但是它让我输入了很多代码,如果没有所需的星号则不需要。
<div>
{{ field.errors }}
<label for="{{ field.auto_id }}">
{% if field.field.required %}<span class="required">{{ field.label }}</span>
{% else %}{{ field.label }}{% endif %}
</label>
{{ field }}
</div>
这是我目前在模板中的代码:
<div>
{{ field.errors }}
{{ field.label_tag }}{{ field }}
</div>
这样可以节省大量的代码来编写,但是我无法弄清楚如何在带有必填字段的标签后得到星号。
有人可以帮我吗? 如果您需要更多信息,请随时询问。
答案 0 :(得分:2)
您是否尝试在表单上设置required_css_class = 'something'
(参见here)然后使用css,您可以在标签上添加红色星号
答案 1 :(得分:1)
考虑编写一个接收field
的模板标记,如果需要该字段,则返回带有星号后缀的field.label
,如果不需要,则field.label
。你可以像这样使用:
<div>
{{ field.errors }}
{{ field | append_ast_if_req }}
{{ field }}
</div>
您的模板标记可以是:
@register.filter
def append_ast_if_req (field):
if field.field.required:
return field.label + '*'
else:
return field.label