【问题标题】:django - inlineformset - crispy - how to display non_field_errorsdjango - inlineformset -crispy - 如何显示 non_field_errors
【发布时间】:2018-03-16 15:55:06
【问题描述】:

我有以下 CreateView

class CreatePerson(CreateView):
    model=Person
    form_class=PersonForm

    def get_context_data(self, **kwargs):

        context = super(CreatePerson, self).get_context_data(**kwargs)
        if self.request.POST:
            context['address_formset'] = AddressInlineFormSet(self.request.POST)
        else:
            context['address_formset'] = AddressInlineFormSet()
        return context

    def form_valid(self, form):
        context = self.get_context_data()
        formset = context['address_formset']
        if formset.is_valid():
            self.object = form.save()
            formset.instance = self.object
            formset.save()
            return super().form_valid(form)
        else:
            return self.render_to_response(self.get_context_data(form=form))

还有下面的表格

{% load static crispy_forms_tags %}
...
    {% csrf_token %}
    {% crispy form %}

    {{ address_formset.management_form }}

    {% for formset in address_formset %}
        {% crispy formset %}
    {% endfor %}
    ...

如何在表单中显示重复键错误(发生在formset模型中)?

这个方法我试过了。

form_errors = formset.errors
return self.render_to_response(self.get_context_data(form=form,form_errors=form_errors))

{{ form_errors }}

在表单中给出以下显示。

[{}, {'__all__': ['Please correct the duplicate values below.']}]

如何以脆的方式渲染它?

谢谢

【问题讨论】:

    标签: python django django-crispy-forms inline-formset


    【解决方案1】:

    我需要的只是……

    {% csrf_token %}
    
    {% crispy form  %}
    
    {% crispy address_formset address_formset.form.helper %}
    

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 1970-01-01
      • 2019-07-14
      • 2021-01-16
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      相关资源
      最近更新 更多