跳转到主要内容

为Django Admin中的单独行添加操作按钮

项目描述

Django Admin Row Actions

允许您轻松定义一个附加在您的模型更改列表末尾的“操作”下拉菜单,并在该行上执行操作。

菜单项可以调用URL或方法,可以禁用,有工具提示等。

我从为http://hireablehq.com/编写的代码中提取了此代码。那里的管理员有Bootstrap可用,但我已修改了这个版本以使用独立的jQuery下拉菜单。

安装

  1. 从PyPI安装

    pip install django-admin-row-actions
    

    或使用pip和git安装

    pip install git+https://github.com/DjangoAdminHackers/django-admin-row-actions.git
    
  2. 添加到INSTALLED_APPS

    INSTALLED_APPS = [
        ...
        'django_admin_row_actions',
        ...
    ]
    
  3. 将混入添加到您的ModelAdmin

    from django_admin_row_actions import AdminRowActionsMixin
    ...
    
    class ExampleAdmin(AdminRowActionsMixin, admin.ModelAdmin):
        ...
    
  4. 在您的ModelAdmin上定义一个get_row_actions方法

    def get_row_actions(self, obj):
        row_actions = [
            {
                'label': 'Edit',
                'url': obj.get_edit_url(),
                'enabled': obj.status is not 'cancelled',
            }, {
                'label': 'Download PDF',
                'url': obj.get_pdf_url(),
            }, {
                'label': 'Convert',
                'url': reverse('convert_stuff', args=[obj.id]),
                'tooltip': 'Convert stuff',
            }, {
                'divided': True,
                'label': 'Cancel',
                'action': 'mark_cancelled',
            },
        ]
        row_actions += super(ExampleAdmin, self).get_row_actions(obj)
        return row_actions
    

前三个菜单项是您通过任何方式提供的简单链接到URL。

最后一个定义的是“操作”,而不是“URL”。这应该是您ModelAdminModel类上的可调用对象名称(类似于ModelAdmin.list_display)。

您可以使用“tooltip”字典键为每个单独的操作添加鼠标悬停工具提示,并使用“enabled”启用/禁用每个对象的单独操作。

可以将特殊选项“divided”传递给任何项,以显示其上方的水平线。

鸣谢

灵感来源于(并基于代码):django-object-actions

包含jquery-dropdown的部分组件;归功于Cory LaViska。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django_admin_row_actions-0.10.0.tar.gz (10.5 kB 查看哈希值)

上传时间

构建分发

django_admin_row_actions-0.10.0-py2.py3-none-any.whl (13.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页