2024-09-29 01:24:17 发布
网友
我正在寻找将自定义操作添加到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。
HttpResponse
该示例将url和视图封装在ModelAdmin中。也可以通过AdminSite子类来实现这一点,但至少在您的用例中,这可能是过分的。
ModelAdmin
顺便说一下,重写change_form.html模板,让你的应用程序向标准更改视图中添加一个按钮就可以了。在管理员中没有专门的api(不幸的是)。
change_form.html
因为自定义管理视图基本上只是普通视图,所以没有太多的特性。为实现更清洁的集成,您应该考虑以下几点:
AdminSite
的get_urls()添加url模式。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
。该示例将url和视图封装在
ModelAdmin
中。也可以通过AdminSite
子类来实现这一点,但至少在您的用例中,这可能是过分的。顺便说一下,重写
change_form.html
模板,让你的应用程序向标准更改视图中添加一个按钮就可以了。在管理员中没有专门的api(不幸的是)。相关问题 更多 >
编程相关推荐