Django label_tag需要星号

时间:2016-05-23 11:32:03

标签: python django

我目前正在研究一些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>

这样可以节省大量的代码来编写,但是我无法弄清楚如何在带有必填字段的标签后得到星号。

有人可以帮我吗? 如果您需要更多信息,请随时询问。

2 个答案:

答案 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