Django Admin 中的错误处理导入-导出

问题描述

当我尝试将文件导入应用程序连接到的数据库时,出现故意错误(例如不允许 NULL 的列中的 NULL 值)时,应用程序会在屏幕上显示这条非常不吸引人的错误消息。

对于开发/调试很有用,比使应用程序崩溃要好,但仍然不是那么愉快的用户

我已经看到一些解决方案在 forms.py 甚至 views.py 中实施表单有效性检查,但我的应用程序没有这些,只有一个 admin.py 文件

@admin.register(MyModel)
class ModelAdminView(ImportExportModelAdmin):
    
    ...code...

    #def save_model(self,request,obj,form,change):
        #try:
            #super().save_model(request,change)
            #return super(ModelAdminView,self).save_model(request,change)
            #obj.save()
        #except Exception as err:
            #raise ValidationError(err)
            #messages.error(request,err)
            #return super(ModelAdminView,*args,**kwargs)
            #return HttpResponseRedirect(request.path)

评论是我迄今为止尝试过的一些不成功的黑客攻击(显然不是同时)。希望其他人对此有所了解!

解决方法

处理验证的应该是您的 Resource 实例,因此您不应该看到这个原始错误。

我建议看看在 example application 中是如何处理导入的。它将向您展示这是如何结合在一起的。