假设我有 Django 模型:class Data(models.Model): name = models.CharField(max_length=50, blank=False) some_number = models.DecimalField(max_digits=6, blank=False) optional_field = models.CharField(max_length=20)我正在尝试验证数据列表是否满足模型的条件。说我有这个清单:myData = [ ['bob', 25.22, None], #should pass ['jane', 123.45678, "foo"], #should fail some_number max_digits=6 [None, 25.22, "bar"] #should fail name blank=False ]是否有一种干净快速的方法来测试每一行是通过还是失败,并且如果失败,还可以获得不满足的条件?
2 回答

喵喔喔
TA贡献1735条经验 获得超5个赞
您可以full_clean()在模型实例上调用该方法
from django.core.exceptions import ValidationError
myData = [
{"name":'bob',"some_number": 25.22,"optional_field": None},
{"name":"jane","some_number": 123.45678,"optional_field": "foo"},
{"name":None, "some_number":25.22, "optional_field": "bar"}
]
for row in myData:
try:
instance = LCSData(**row)
instance.full_clean()
except ValidationError as e:
print(e.message_dict)
添加回答
举报
0/150
提交
取消