Django REST Framework中两个ValidationError的区别是什么?
Django REST Framework中两个ValidationError的差异
从rest_framework.exceptions和rest_framework.serializers导入的ValidationError没有功能差异,二者本质是同一个类,只是DRF做了导入重导出的处理。
具体细节:
- DRF在
serializers.py模块里,通过from rest_framework.exceptions import ValidationError将异常类导入到当前模块命名空间,所以两个路径导入的是完全相同的对象。 - 你可以通过简单的代码验证这一点:
from rest_framework.exceptions import ValidationError as ExcValErr from rest_framework.serializers import ValidationError as SerValErr # 判断是否为同一个对象 print(ExcValErr is SerValErr) # 输出:True
DRF这么做的目的是为了开发者便利——因为在序列化器编写中,抛出验证错误是高频操作,把ValidationError放到serializers模块里,能减少一次额外的导入步骤,不用再单独导入exceptions模块。
内容的提问来源于stack exchange,提问作者nafiseh maraghi
相关产品推荐
相关产品推荐

