添加对Django管理员更改、添加和操作的确认
django-admin-confirm的Python项目详细描述
Django管理员确认
AdminConfirmMixin是一个mixin,用于ModelAdmin添加用于更改、添加和操作的确认。在
它可以配置为在ModelAdmin上添加确认页:
- 保存更改
- 添加新实例
- 执行操作
典型用法:
fromadmin_confirmimportAdminConfirmMixinclassMyModelAdmin(AdminConfirmMixin,ModelAdmin):confirm_change=Trueconfirmation_fields=['field1','field2']
安装
通过运行以下命令安装django admin confirm:
^{pr2}$在django.contrib.admin
之前添加到项目设置中已安装的应用程序:
INSTALLED_APPS = [
...
'admin_confirm',
'django.contrib.admin',
...
]
注意,这个项目遵循Django的模板覆盖规则。
若要重写模板,您的应用程序应列在已安装的应用程序中admin_confirm
之前。在
配置选项
属性:
- ^{cd3>}可选[bool]-决定更改是否应触发确认
confirm_add
可选[bool]-决定添加是否应触发确认confirmation_fields
可选[Array[string]]-设置哪些字段应该触发添加/更改的确认。对于添加新实例,仅当字段设置为非默认值时才会触发确认。在change_confirmation_template
可选[string]-用于更改/添加的自定义html模板的路径action_confirmation_template
可选[string]-用于操作的自定义html模板的路径
请注意,设置confirmation_fields
而不设置confirm_change
或{confirmation_fields
选项。在
方法重写: 如果您想对确认进行更多控制,可以重写以下方法:
get_confirmation_fields(self, request: HttpRequest, obj: Optional[Object]) -> List[str]
render_change_confirmation(self, request: HttpRequest, context: dict) -> TemplateResponse
render_action_confirmation(self, request: HttpRequest, context: dict) -> TemplateResponse
使用
确认更改:
fromadmin_confirmimportAdminConfirmMixinclassMyModelAdmin(AdminConfirmMixin,ModelAdmin):confirm_change=Trueconfirmation_fields=['field1','field2']
这将确认对包括field1
和/或field2
的修改的更改。在
确认添加:
fromadmin_confirmimportAdminConfirmMixinclassMyModelAdmin(AdminConfirmMixin,ModelAdmin):confirm_add=Trueconfirmation_fields=['field1','field2']
这将确认add-on将field1
和/或{
注意:confirmation_fields
适用于两个添加/更改确认。在
确认操作:
fromadmin_confirmimportAdminConfirmMixinclassMyModelAdmin(AdminConfirmMixin,ModelAdmin):actions=["action1","action2"]defaction1(modeladmin,request,queryset):# Do something with the queryset@confirm_actiondefaction2(modeladmin,request,queryset):# Do something with the querysetaction2.allowed_permissions=('change',)
这将确认action2
,而不是{
操作确认将遵循allowed_permissions
和has_xxx_permission
方法。在
贡献与赞赏
欢迎投稿:)请随时:
- 解决问题
- 提出问题
- 添加更多测试用例
- 添加功能请求
也欢迎您的赏识:)请随时:
- 启动项目
- 打开一个问题来分享你的感谢
功能列表
这是未来可能添加的功能列表。其中一些可能在他们自己的包里更有意义。在
- [x] 变更列表操作的确认
- []更改列表页上的全局操作
- []更改/查看页面上的实例操作
- []操作日志(将操作添加到实例的历史记录中)
- []将帮助工具提示/popover添加到任何字段以获取更多信息
- []将帮助工具提示/popover/help按钮添加到变更列表上的管理操作
- []从管理员运行脚本
- []完成的操作摘要页面
- []将顶部和底部区域添加到可为任何内容配置的实例页面
支持
如果您有任何问题,请通过提出问题让我们知道。在
许可证
该项目是在Apache2.0许可下授权的。在
- 项目
标签: