管理员扩展。
项目描述
关于django管理的一些事情让我感到沮丧。这里提供了这些问题的解决方案,全部打包在一起。
安装
将'admin_additions'添加到您的settings.INSTALLED_APPS中。
然后配置您想要使用的内容。默认设置如下所示
ADMIN_ADDITIONS = { 'RETURN_TO_FILTERED_CHANGELIST': False, 'SAVE_ON_TOP': True, 'LIST_SELECT_RELATED': False, 'FULLY_DYNAMIC_FORMSETS': True }
设置
RETURN_TO_FILTERED_CHANGELIST
在编辑对象时,您通常想要退回到您从哪里来的过滤视图。
这是一个猴子补丁,补充了《ModelAdmin》基类上的正常change_view方法,并确保在POST回引用视图后返回。
在管理员更改视图中提交表单后返回过滤视图的方法主要基于片段2531 <http://djangosnippets.org/snippets/2531/>。
SAVE_ON_TOP
应该是默认设置:在每次change_view的顶部显示保存工具栏。
FULLY_DYNAMIC_FORMSETS
将InlineModelAdmin上的extra值设置为0,这样您只需使用添加按钮而不是使用任何空表单集。
补丁函数
patch_model_admin(model, patch_function)
修补已安装的ModelAdmin。这包括注销、修补然后重新注册。您可以传递一个模型,或一个形式为“app_label.ModelName”的字符串,以及一个将修补一个ModelAdmin类的函数。
如果您基于传递的类创建了一个新类,则可以返回它:这将在重新注册时使用。如果您仅修补现有类,则可以返回空值,并使用修补后的原始类。
from admin_additions.patchers import patch_model_admin def patcher_function(model_admin): # Do stuff here. model_admin.form = MyClassyForm return model_admin # optional: you may patch in-place patch_model_admin(MyModel, patcher_function)
add_inlines(model, *inlines)
修复 ModelAdmin 的简单/常见情况 - 添加新的内联模型
from django.contrib import admin from admin_additions.patchers import add_inlines from models import Foo class FooInline(admin.StackedInline): model = Foo add_inlines('bar.Bar', FooInline)
您可以传递多个内联模型。
您还可以传递任意组合的模型或管理内联:如果收到模型,将为该模型创建一个 StackedInline。
add_actions(model, *actions)
与内联类似,但添加一个操作。
@patch_admin(model)
一个装饰器,可以用来装饰一个要修复的函数。
from admin_additions.patchers import patch_admin @patch_admin(model) def patcher_function(model_admin): model_admin.form = MyClassyForm
这种语法比上面的 patch_model_admin 函数更简洁。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
django-admin-additions-1.0.2.tar.gz (4.2 kB 查看散列值)
关闭
django-admin-additions-1.0.2.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4cf91ac8ae50d0d61f8e5fa0703ec2c5f3c7f3b1b36c2182b1420968aa2bec4b |
|
MD5 | b78779f5be03237497e7672e0d49cbf0 |
|
BLAKE2b-256 | a42dc23b5b38a109a2b18892395f93dbc9e92776edcac9fab32d9a1f96fe5bc6 |