问题描述
当我尝试将文件导入应用程序连接到的数据库时,出现故意错误(例如不允许 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 中是如何处理导入的。它将向您展示这是如何结合在一起的。