python Django(极端情况):如何在FormView(CreateView / UpdateView)的form_valid方法中引发表单无效并添加错误消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Django(极端情况):如何在FormView(CreateView / UpdateView)的form_valid方法中引发表单无效并添加错误消息相关的知识,希望对你有一定的参考价值。

from django.forms.util import ErrorList
from django import forms

class ContractUpdateView(UpdateView):
    model = Contract
    template_name = 'contract/contract_form.html'
    form_class = ContractForm

    def form_valid(self, form):
        if self.request.POST.get('finish'):
            if (
                not form.cleaned_data['number'] or
                not self.object.images.count()
            ):
                form._errors[forms.forms.NON_FIELD_ERRORS] = ErrorList([
                    u'You have to add images and a contract number'
                ])
                return self.form_invalid(form)
            self.object.is_submitted = True
        self.object = form.save()
        return HttpResponseRedirect(self.get_success_url())

以上是关于python Django(极端情况):如何在FormView(CreateView / UpdateView)的form_valid方法中引发表单无效并添加错误消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在不在 python 中迭代它们的情况下明显地批量更新 django 模型的所有对象?

极端天气如何实现稳定通信

如何从 django 模板中的 for 循环中获取特定的 id?

Django 模板:如何最好地抑制在 Django 模板中执行 python 代码的输出?

是否可以在不修改 Form 类的情况下使用 django-crispy-form FormHelper

如何在django中添加列表值?