django-crispy-forms中的Bootstrap3内联表单不显示表单错误

Ama*_*ngh 8 django django-crispy-forms

我使用django-crispy-forms来呈现Bootstrap3内联形式(下面显示的代码),但是表单提交时的错误(如跳过必填字段)没有显示.它们以正常和水平形式布局.

有人可以建议可能的原因吗?

Models.py

class Person(models.Model):
    name = models.CharField(max_length=500)
    city = models.CharField(max_length=50)
    country = models.CharField(max_length=50)
    email = models.EmailField(blank=True)
Run Code Online (Sandbox Code Playgroud)

Forms.py

class EntryForm(forms.ModelForm):
    class Meta:
        model = Person

    def __init__(self, *args, **kwargs):
        super(EntryForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper(self)
        self.helper.form_class = 'form-inline'
        self.helper.field_template = 'bootstrap3/layout/inline_field.html'
        self.helper.layout.append(ButtonHolder(
            Submit('save', 'Save', css_class='btn-primary btn-hg')
            )
        )
Run Code Online (Sandbox Code Playgroud)

我使用{% load crispy_forms_tags %},并{% crispy form %}在我的模板.

eXt*_*eXt 7

原因是您使用的inline_field.html模板没有显示错误的代码.

请将正常bootstrap3/field.html与内联版本进行比较.你会注意到的

{% include 'bootstrap3/layout/help_text_and_errors.html' %}
Run Code Online (Sandbox Code Playgroud)

在后者中缺失.将内联更改为如下所示之后,您将收到错误消息.

{% load crispy_forms_field %}

{% if field.is_hidden %}
    {{ field }}
{% else %}
    {% if field|is_checkbox %}
        <div id="div_{{ field.auto_id }}" class="checkbox">
           <label for="{{ field.id_for_label }}" class="{% if field.field.required %} requiredField{% endif %}">
                {% crispy_field field 'class' 'checkbox' %}
                {{ field.label|safe }}
                {% include 'bootstrap3/layout/help_text_and_errors.html' %}
            </label>
        </div>
    {% else %}
        <div id="div_{{ field.auto_id }}" class="form-group">
            <label for="{{ field.id_for_label }}" class="sr-only{% if field.field.required %} requiredField{% endif %}">
                {{ field.label|safe }}
            </label>
            {% crispy_field field 'placeholder' field.label %}
            {% include 'bootstrap3/layout/help_text_and_errors.html' %}
        </div>
    {% endif %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

当然错误消息非常难看(因为它们来自正常版本),因此您可能必须创建内联版本bootstrap3/layout/help_text_and_errors.html.也error可能需要一些css类 - 请参阅field.html.