如何在django ModelForm CharField之后添加'Star*'?

Koz*_*zet 5 django django-models django-forms modelform

我在django ModelForm中有一些必要的字段.如何在必填字段后添加红星(*)?

Joe*_*nux 24

我假设您希望自动发生这种情况,所以这里有几种不同的方式:

{% for field in form %}
    <label for="{{ field.auto_id }}">{{ field.label_tag }}
    {% if field.field.required %}
        <span class="required">*</span>
    {% endif %}
    </label>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用CSS设置星号的样式.

或者,如果需要,可以使用CSS添加星号:

<style type="text/css">
    span.required:after { content: '*'; }
</style>
{% for field in form %}
    <label for="{{ field.auto_id }}">
    {% if field.field.required %}
        <span class="required">{{ field.label_tag }}</span>
    {% else %}
        {{ field.label_tag }}
    {% endif %}
    </label>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

如果你想用必填字段做其他事情,这个可能是更好的选择.

但是,如果您不单独访问这些字段(例如使用{{form.as_p}}),则可以向ModelForm添加属性:

class FooForm(forms.ModelForm):
    required_css_class = 'required'
Run Code Online (Sandbox Code Playgroud)

这将定义具有"必需"类所需的所有字段(因此,您可以使用我上面提到的CSS代码添加星号(或者您想要用它做的任何其他内容).