深度阅读

如何在 Django admin 中添加自定义批量操作的方法

作者
作者
2023年08月22日
更新时间
9.14 分钟
阅读时间
0
阅读量

在 Django 的 admin 界面中,你可以通过在你的 ModelAdmin 类中定义一个方法,然后将这个方法的名称添加到 actions 列表中,来实现自定义的批量操作。

以下是一个简单的例子,假设你有一个 Article 模型,你想要添加一个批量操作来将选定的文章标记为已发布:

from django.contrib import admin
from .models import Article

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'status')  # 在列表页显示的字段
    actions = ['make_published']  # 添加操作到 actions 列表

    def make_published(self, request, queryset):
        # 更新 queryset 中的所有对象的状态
        queryset.update(status='PUBLISHED')
    make_published.short_description = 'Mark selected articles as published'  # 设置操作的描述

admin.site.register(Article, ArticleAdmin)

在这个例子中,make_published 方法将所有选定的文章的 status 字段更新为 'PUBLISHED'short_description 属性设置了在 admin 界面中显示的操作的描述。

现在,当你在文章的 admin 列表页选定一些文章后,你可以在 “Action” 下拉菜单中看到一个 “Mark selected articles as published” 选项。选择这个选项并点击 “Go” 按钮,将会执行 make_published 操作,将所有选定的文章标记为已发布。

相关标签

博客作者

热爱技术,乐于分享,持续学习。专注于Web开发、系统架构设计和人工智能领域。