通过Django Admin保存模型时,可以轻松处理崩溃

时间:2017-10-02 06:06:27

标签: django django-admin

有时不可能知道事先并且在验证程序中慷慨地拒绝模型保存,这在Django Admin中显示了很好的错误消息。< / p>

如果在保存操作期间发生特定崩溃(例如数据完整性错误),我们仍然希望捕获它并显示一个很好的错误(类似于验证错误),那么就没有了这是我能找到的明显方法。

我尝试在Django Admin上覆盖save_model方法,但根据docs这是一个可怕的事情:

  

重写ModelAdmin.save_model()和ModelAdmin.delete_model()时,您的代码必须保存/删除对象。 不是为了否决权,而是允许您执行额外的操作。

捕获特定异常并显示错误消息的正确方法是什么?

更新:

示例:使用乐观锁定时出现完整性错误。

更多具体示例ConcurrentTransition由于管理员加载了对象后,在DB中更改了对象的状态时出现django_fsm错误被认为是乐观锁定的轻松版本。)

1 个答案:

答案 0 :(得分:1)

我找到了一种优雅的方法来解决这个问题,而不会破坏C:\windows\installer\68009a4d.msi方法,而这种方法并非用于否决权。

相反,它只是覆盖save_model和/或change_view,并在它们崩溃时生成错误消息。

示例:

add_view