我在使用自定义模板通过crispy_forms创建的表单中显示默认错误时遇到问题。即,文本“此字段是必需的”。两个字段不存在。
请参阅here
这是表单的初始化代码:
...
start_time = forms.TimeField(label='Start Time', required=True, input_formats=[TIME_FORMAT])
end_time = forms.TimeField(label='End Time', required=True, input_formats=[TIME_FORMAT])
...
Field('end_date', placeholder='dd/mm/yyyy'),
Field('start_time', placeholder='hh:mm (pm/am)', template="appointments/datetimefield.html"),
Field('end_time', placeholder='hh:mm (pm/am)', template="appointments/datetimefield.html"),
和干净的保存方法here:
最后,自定义模板:
{%load crispy_forms_field%}
<div id="div_{{ field.auto_id }}" class="form-group{% if field.errors %} has-error{% endif %}">
{% if field.label and form_show_labels %}
<label for="{{ field.id_for_label }}" class="control-label {{ label_class }}{% if field.field.required %} requiredField{% endif %}">
{{ field.label|safe }}{% if field.field.required %}<span class="asteriskField">*</span>{% endif %}
</label>
{% endif %}
<div class="controls col-xs-8 col-md-9 col-lg-9">
{% crispy_field field %}
</div>
</div>
答案 0 :(得分:1)
您需要在模板中显示错误。 Crispy表单有一个模板,您可以包含错误:{% include 'bootstrap3/layout/help_text_and_errors.html' %}
(如果您使用的是bootstrap 3)。
所以你的自定义模板可能是这样的:
<div id="div_{{ field.auto_id }}" class="form-group{% if field.errors %} has-error{% endif %}">
{% if field.label and form_show_labels %}
<label for="{{ field.id_for_label }}" class="control-label {{ label_class }}{% if field.field.required %} requiredField{% endif %}">
{{ field.label|safe }}{% if field.field.required %}<span class="asteriskField">*</span>{% endif %}
</label>
{% endif %}
<div class="controls col-xs-8 col-md-9 col-lg-9">
{% crispy_field field %}
{% include 'bootstrap3/layout/help_text_and_errors.html' %}
</div>
</div>
答案 1 :(得分:0)
也许您应该检查crispy_forms的版本并更新它。
我也遇到过crispy_forms == 1.3.2这个问题。但是当我将crispy_forms更新到1.4.0时,问题就消失了。
实际上,我发现只有bootstrap
和uni_form
文件夹位于crispy_forms/templates
和bootstrap3
文件夹中,而当安装了crispy_forms == 1.3.2时。