如何在django-import-export的错误列表中展示待清洗邮箱数据
问题根因
你当前的EmailWidget校验逻辑仅在校验通过时返回有效值,校验失败时直接返回None,未向框架抛出校验错误,因此导入框架无法识别该字段为校验失败状态,自然不会在错误表格中关联展示对应的原始待清洗数据。
解决方案
修改clean方法,在校验失败时主动抛出携带原始值的ValidationError,让框架可以捕获错误并绑定对应行、列的原始数据做展示:
from django.core.exceptions import ValidationError class EmailWidget(CharWidget): def clean(self, value, row=None, *args, **kwargs): if not value: return None email_field = EmailField() try: # 校验通过直接返回清洗后的值 return email_field.clean(value) except ValidationError: # 抛出带原始值的错误,框架会自动关联到对应行、列展示 raise ValidationError(f"无效的邮箱格式:{value}")
修改后框架会自动识别该字段的校验错误,你期望的错误列表对应位置的原始数据标注会正常渲染,错误信息也会同步展示在对应单元格的提示中。
内容的提问来源于stack exchange,提问作者Prosy A.
相关产品推荐
相关产品推荐

