为了账号安全,请及时绑定邮箱和手机立即绑定

检查值是否满足 Django 模型的条件

检查值是否满足 Django 模型的条件

互换的青春 2021-07-01 10:00:11
假设我有 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贡献1842条经验 获得超12个赞

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


查看完整回答
反对 回复 2021-07-06
?
喵喔喔

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)


查看完整回答
反对 回复 2021-07-06
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号