首页 > 解决方案 > 检查值是否满足 Django 模型的条件

问题描述

假设我有 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
    ]

是否有一种干净快速的方法来测试每一行是否会通过或失败,并且如果失败,还可以获得哪个条件不满足?

标签: pythondjangodjango-models

解决方案


我认为您可以基于 Data 模型制作ModelForm ,然后将数据提供给该表单。该表单将验证给定的数据并在必要时输出任何错误(带有描述)。如果您不想将给定的数据保存到数据库中,只需覆盖 ModelForm save() 方法,这样它就不会做任何事情。


推荐阅读