保存确认页面在哪里可以挂接到Django管理员中? (类似于删除确认)
时间:2020-03-06 14:32:06 来源:igfitidea点击:
我想在保存之前模拟删除确认页面的行为
管理员中的某些模型。就我而言,如果我更改一个对象,
某些其他对象应删除,因为它们取决于对象的当前状态
过时的状态。
我了解在哪里实施实际的级联更新(内部
父模型的save方法),但我看不到一种快速的方法
用户进行确认(如果他们决定不这样做,则回滚
救)。我想我可以实现一些奇怪的确认逻辑
直接在save方法内部(分两阶段保存),但是
看起来...难看。
有什么想法,甚至是指向django代码库的通用指针吗?
谢谢!
解决方案
我绝不是Django专家,因此此答案可能会误导我们。
开始在" django.contrib.admin.options.ModelAdmin"周围寻找某个地方,尤其是" render_change_form"和" response_change"。我猜我们将需要为模型继承ModelAdmin并提供围绕这些方法的必需行为。
我们可以重载模型管理员的get_form方法,并在生成的表单中添加一个额外的复选框,该复选框必须是工单。另外,我们可以覆盖change_view
并拦截请求。
我们是否考虑过覆盖有关模型的管理模板?该链接很好地概述了该过程。在这种特定情况下,具有更细粒度的控制可能是获得所需结果的最佳方法。