Skip to main content

Django 批量管理使您能够在 Django 管理中批量添加、批量编辑、批量上传和批量选择。

项目描述

django-批量管理

Django 批量管理使您能够在 Django 管理中批量添加、批量编辑、批量上传和批量选择。

查看下面的屏幕截图以了解 django bulk admin 的外观。

需要 Django >= 1.7。

快速开始

  1. 使用 pip 安装:

    $ pip install django-bulk-admin
  2. 将“bulk_admin”添加到您的 INSTALLED_APPS 设置中,如下所示:

    INSTALLED_APPS = (
        ...
        'bulk_admin',
    )
  3. bulk_admin.BulkModelAdmin而不是django.contrib.admin.ModelAdmin继承:

    from django.contrib import admin
    from example_project import models
    
    import bulk_admin
    
    
    @admin.register(models.Image)
    class ImageAdmin(bulk_admin.BulkModelAdmin):
        search_fields = ('title',)
    
    
    @admin.register(models.Project)
    class ProjectAdmin(bulk_admin.BulkModelAdmin):
        raw_id_fields = ('images',)
  4. 享受!

批量上传

默认情况下,django bulk admin 为每个具有upload_to属性的字段类型提供了一个批量上传按钮,例如FileFieldImageField。如果您想自定义提供的按钮(或完全禁用批量上传),请在BulkAdminModel中设置bulk_upload_fields

@admin.register(models.Image)
class ImageAdmin(bulk_admin.BulkModelAdmin):
    bulk_upload_fields = ()

批量上传文件时,会为每个文件创建并保存一个模型实例。如果有必填字段,django bulk admin 会尝试设置唯一值(uuid),上传用户可以在下一步中对其进行编辑。要设置自定义值或支持所需的非字符串字段,请覆盖generate_data_for_file

@admin.register(models.Image)
class ImageAdmin(bulk_admin.BulkModelAdmin):

    def generate_data_for_file(self, request, field_name, field_file, index):
        if field_name == 'data':
            return dict(title=field_file.name)
        return super(ImageAdmin, self).generate_data_for_file(request, field_name, file, index)

注意事项

  • 不会为批量操作生成管理员日志

自定义内联

Django bulk admin 提供了两个与 django admin 提供的类似的内联:

  • bulk_admin.TabularBulkInlineModelAdmin(默认)

  • bulk_admin.StackedBulkInlineModelAdmin

您可以像 django admin 一样配置它们:

from django.contrib import admin
from example_project import models

import bulk_admin


class ProjectInline(bulk_admin.StackedBulkInlineModelAdmin):
    model = models.Project
    raw_id_fields = ('images',)


@admin.register(models.Image)
class ImageAdmin(bulk_admin.BulkModelAdmin):
    search_fields = ('title',)


@admin.register(models.Project)
class ProjectAdmin(bulk_admin.BulkModelAdmin):
    raw_id_fields = ('images',)
    bulk_inline = ProjectInline

截图

批量添加

https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_add_1.png https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_add_2.png

批量编辑

https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_edit_1.png

批量上传

https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_upload_1.png https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_upload_2.png

批量选择

https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_select_1.png https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_select_2.png https://raw.githubusercontent.com/purelabs/django-bulk-admin/master/screenshots/bulk_select_3.png

下载文件

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

源分布

django-bulk-admin-0.1.1.tar.gz (11.8 kB 查看哈希)

已上传 source