有时不可能知道事先并且在验证程序中慷慨地拒绝模型保存,这在Django Admin中显示了很好的错误消息。< / p>
如果在保存操作期间发生特定崩溃(例如数据完整性错误),我们仍然希望捕获它并显示一个很好的错误(类似于验证错误),那么就没有了这是我能找到的明显方法。
我尝试在Django Admin上覆盖save_model
方法,但根据docs这是一个可怕的事情:
重写ModelAdmin.save_model()和ModelAdmin.delete_model()时,您的代码必须保存/删除对象。 不是为了否决权,而是允许您执行额外的操作。
捕获特定异常并显示错误消息的正确方法是什么?
更新:
示例:使用乐观锁定时出现完整性错误。
更多具体示例:ConcurrentTransition
由于管理员加载了对象后,在DB中更改了对象的状态时出现django_fsm
错误被认为是乐观锁定的轻松版本。)
答案 0 :(得分:1)
我找到了一种优雅的方法来解决这个问题,而不会破坏C:\windows\installer\68009a4d.msi
方法,而这种方法并非用于否决权。
相反,它只是覆盖save_model
和/或change_view
,并在它们崩溃时生成错误消息。
示例:
add_view