[英]Add custom Django admin action
我正在寻找向Django管理员更改页面添加自定义操作的方法。 我不是在寻找可以添加到概述中下拉框中的操作。
我的Django应用程序中的一个模型包含有关文档的信息,这些文档在前端自动编译为PDF文件。 我想让管理员直接从更改页面快速呈现PDF,以便快速检查结果。
我已经玩过覆盖change_form.html / submit_line.html,添加按钮绝对没问题。 但我想知道如何以干净的方式扩展管理模块,以便它包含我的自定义操作。
由于自定义管理员视图基本上只是普通视图,因此没有太多专业。 为了更清洁的集成,您应该考虑以下几点:
AdminSite
。 RequestContext
或Context
提供current_app
参数。 编辑 :
在这里找到了一个例子: http : //shrenikp.webs.com/apps/blog/show/5211522-add-custom-view-method-for-django-admin-model-
注意,该示例不使用我提到的current_app
参数。 我想您生成PDF的视图只返回具有适当内容类型的HttpResponse
,而不是使用Context
呈现响应,因此不需要它。 总而言之, current_app
仅在您自定义视图使用的管理模板的子类化时才有意义,该模板实际上在某处使用了current_app
。
该示例在ModelAdmin
封装了URL和视图。 也可以通过AdminSite
子类来完成此AdminSite
,但至少在您的用例中这可能是矫枉过正。
顺便说一下,覆盖应用程序的change_form.html
模板,将按钮添加到标准更改视图就可以了。 在管理员中没有特殊的api(不幸的是)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.