如何引发多个非现场错误
How to raise multiple non-field errors
clean
方法是引发非字段错误的地方:
def clean(self):
cleaned_data = super(MyForm, self).clean()
if condition1(cleaned_data['f1'], cleaned_data['f2']):
raise ValidationError('Condition1 error')
if condition3(cleaned_data['f3'], cleaned_data['f4']):
raise ValidationError('Condition2 error')
但是,如果我想同时提出这两个错误,以便用户立即看到所有错误,而不是必须一个一个地更正,该怎么办?
字段错误将字典传递给 ValidationError
是可能的,但是非字段错误呢?
您可以使用表格 add_error
method 来执行此操作:
if condition1(cleaned_data['f1'], cleaned_data['f2']):
self.add_error(None, ValidationError('Condition1 error'))
if condition3(cleaned_data['f3'], cleaned_data['f4']):
self.add_error(None, ValidationError('Condition2 error'))
clean
方法是引发非字段错误的地方:
def clean(self):
cleaned_data = super(MyForm, self).clean()
if condition1(cleaned_data['f1'], cleaned_data['f2']):
raise ValidationError('Condition1 error')
if condition3(cleaned_data['f3'], cleaned_data['f4']):
raise ValidationError('Condition2 error')
但是,如果我想同时提出这两个错误,以便用户立即看到所有错误,而不是必须一个一个地更正,该怎么办?
字段错误将字典传递给 ValidationError
是可能的,但是非字段错误呢?
您可以使用表格 add_error
method 来执行此操作:
if condition1(cleaned_data['f1'], cleaned_data['f2']):
self.add_error(None, ValidationError('Condition1 error'))
if condition3(cleaned_data['f3'], cleaned_data['f4']):
self.add_error(None, ValidationError('Condition2 error'))