我一直在玩我的测试项目
我的模型中有这个干净的方法
class SomeModel(models.Model):
f1 = models.IntegerField()
f2 = models.IntegerField()
def clean(self):
if self.f1 > self.f2:
raise ValidationError({'f1': ['Should be greater than f1',]})
if self.f2 == 100:
raise ValidationError({'f2': ['That's too much',]})
Run Code Online (Sandbox Code Playgroud)
我真的不知道如何引发这两个错误并在管理页面中显示它,因为即使这两个if是True,也只显示第一个if错误(显然)我如何显示这两个错误?
您可以构建一个dict错误并在完成后引发 ValidationError (如有必要):
class SomeModel(models.Model):
f1 = models.IntegerField()
f2 = models.IntegerField()
def clean(self):
error_dict = {}
if self.f1 > self.f2:
error_dict['f1'] = ValidationError("Should be greater than f1") # this should probably belong to f2 as well
if self.f2 == 100:
error_dict['f2'] = ValidationError("That's too much")
if error_dict:
raise ValidationError(error_dict)
Run Code Online (Sandbox Code Playgroud)