跳转到主要内容

管理员扩展。

项目描述

关于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 查看散列值)

上传时间 源代码

由以下提供支持