繁体   English   中英

添加自定义Django管理员操作

[英]Add custom Django admin action

我正在寻找向Django管理员更改页面添加自定义操作的方法。 不是在寻找可以添加到概述中下拉框中的操作。

我的Django应用程序中的一个模型包含有关文档的信息,这些文档在前端自动编译为PDF文件。 我想让管理员直接从更改页面快速呈现PDF,以便快速检查结果。

我已经玩过覆盖change_form.html / submit_line.html,添加按钮绝对没问题。 但我想知道如何以干净的方式扩展管理模块,以便它包含我的自定义操作。

由于自定义管理员视图基本上只是普通视图,因此没有太多专业。 为了更清洁的集成,您应该考虑以下几点:

  • 通过添加URL模式get_urls()中的AdminSite
  • 在呈现子类管理模板的模板时,为RequestContextContext提供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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM