如何引发多个非现场错误

2024-04-25 22:56:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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,这是可能的,但是非字段错误呢?你知道吗


Tags: 方法selfcleandataifdef地方错误
1条回答
网友
1楼 · 发布于 2024-04-25 22:56:11

您可以使用^{} 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'))

相关问题 更多 >