如何使用所需信息呈现表单字段

gru*_*czy 21 forms django field

是否有任何聪明的方法可以在需要的字段之后使用星号制作django表单渲染字段?或者提供一些其他聪明的标记必填字段?如果我已经在表单中设置了一个字段,我不想在模板中再次执行此操作.

Veb*_*osa 30

从Django 1.2开始,如果您的表单有一个名为的属性required_css_class,它将被添加到BoundField.css_classes必填字段.然后,您可以根据需要使用CSS来设置表单所需的部分样式.一个典型的用例:

# views.py
class MyForm(django.forms.Form):
    required_css_class = 'required'
    …
Run Code Online (Sandbox Code Playgroud)

...

/* CSS */
th.required { font-weight: bold; }
Run Code Online (Sandbox Code Playgroud)

...

<!-- HTML -->
<tr>
  <th class="{{form.name.css_classes}}">{{form.name.label_tag}}</th>
  <td>{{form.name.errors}}{{form.name}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

如果你使用Form.as_table(),Form.as_ul以及Form.as_p,他们这样做自动,要添加类<tr>,<li><p>分别.

  • 注意你可以使用css content指令使用相同的方法添加一个星号:`th.required:after {content:'*'}` (9认同)

小智 5

您还可以使用field.field.required属性:

{% for field in form %}
  {{field.label}} {% if field.field.required %} * {% endif %}
  {{field}}
  {{field.errors}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)