首页 > 其他分享 >django 信号第一个 raise ValidationError出现后,还会继续下一个if吗

django 信号第一个 raise ValidationError出现后,还会继续下一个if吗

时间:2023-11-18 10:22:41浏览次数:32  
标签:errors 第一个 ValidationError no django 异常 raise

在你提供的代码片段中,如果第一个 raise ValidationError 触发,会抛出异常并停止执行当前函数或代码块。这是因为异常(Exception)会中断正常的代码流程,将控制权传递给调用堆栈中的第一个能够捕获该异常的地方。

所以,如果 v_lot_no 为空,第一个 raise ValidationError 被触发后,后续的 if not v_item_no 不会再被检查,因为异常会导致当前执行流程的跳转。

如果你想要检查多个条件并收集所有的错误,而不仅仅是第一个,你可以使用一个列表来保存错误信息,然后在适当的时候一次性抛出异常。例如:

errors = []

if not v_lot_no:
    errors.append('lot no不能为空')

if not v_item_no:
    errors.append('料号不能为空')

if errors:
    raise ValidationError(errors)

在这个例子中,我们将每个错误信息添加到 errors 列表中。如果 errors 不为空,我们最终抛出一个包含所有错误的 ValidationError 异常。这样,你可以收集多个错误而不是在第一个错误时立即停止。

标签:errors,第一个,ValidationError,no,django,异常,raise
From: https://www.cnblogs.com/beichengshiqiao/p/17840129.html

相关文章

  • django 如何查询汇总的求和时避免没有数据导致的错误
    django如何查询汇总的求和时避免没有数据导致的错误在Django中,如果你希望对某个字段进行求和操作,并在没有数据时返回默认值,可以使用aggregate结合Coalesce函数。Coalesce函数用于返回参数中的第一个非空值,这样你可以在没有匹配项时设置默认值。以下是一个示例:fromdjan......
  • django 信号 新增和删除信的合用
    fromdjango.db.models.signalsimportpost_save,post_deletefromdjango.dispatchimportreceiverfromdjango.dbimporttransactionfrom.modelsimportMT002HModel@receiver(post_save,sender=MT002HModel)@receiver(post_delete,sender=MT002HModel)@transa......
  • Django2.0以上版本path方法——路由层使用的转换器(五种)
    str#匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式int#匹配正整数,包含0。slug#匹配字母、数字以及横杠、下划线组成的字符串。uuid#匹配格式化的uuid,如075194d3-6885-417e-a8a8-6c931e272f00。path#匹配任何非空字符串,包含了路径分隔符(/)使用方式:p......
  • Django07
    多表查询(跨表查询)子查询链表查询正反向查询概念聚合查询分组查询F查询和Q查询模型层中常见字段类型和参数Django中如何开启事务——————————————————————————————————————————————————————————————————......
  • DJango 域账号信息批量导入后台
    DJango域账号信息批量导入后台从域账号导入用户信息,因为配置了ldap用户密码,所以执行脚本将用户批量导入DJango管理后台即可。执行脚本 pythonmanage.pyldap_sync_users 注意:导入的每个用户需要单独的设置权限......
  • django南京某高校校园外卖点餐系统-计算机毕业设计源码+LW文档
    摘 要系统根据现在南京某高校校园外卖点餐现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对南京某高校校园外卖点餐的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”......
  • Django配置项
    django核心配置项 本文来自:https://www.cnblogs.com/rangger/p/9801247.htmlDjango的默认配置文件中,包含上百条配置项目,其中很多是我们‘一辈子’都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册。强调:配置的默认值不是在settings.py文件中!不要以为settings.p......
  • Django查看orm内部封装的sql语句的2种形式
    第一种:QuerySet.queryuser_queryset=models.User.objects.values_list('name','age')print(user_queryset.query)结果:SELECT`app01_user`.`name`,`app01_user`.`age`FROM`app01_user` 第二种:执行脚本时打印日志显示到终端将以下代码复制进入settings文件中......
  • Django实战项目-学习任务系统-文章汇总
    学习任务系统1.0版本已经基本完成了。现在按顺序整理下文章和链接,按照开发时间顺序列举,方便想要完整学习的人。理论上说,按照文章代码可以搭建该系统的70%主体功能,剩下一些小的功能自己参考现有代码学习即可完成。1,Django实战项目-学习任务系统-需求说明https://mp.weixin.qq.co......
  • 编程语言mojo报错:error: cannot call function that may raise in a context that can
    代码:frompythonimportPythonfnmain():#fnmain()raises:#ThisisequivalenttoPython's`importnumpyasnp`letnp=Python.import_module("numpy")leta=np.array([1,2,3])print(a) 运行报错:[02:19:48](mojo)devil@OME......