Python Django给admin添加Action的方法实例详解

那我就详细讲解一下 "Python Django给admin添加Action的方法实例详解" 的完整攻略。本文内容包括以下两条示例说明:

示例一:

  1. 首先,在你的 Django 项目中,为你要添加 Action 的 Model 创建一个 admin.py 文件。
  2. 在 admin.py 文件中,定义一个函数来作为你要添加的 Action:
from django.contrib import admin
from .models import YourModel

def make_published(modeladmin, request, queryset):
    queryset.update(status='p')

make_published.short_description = "标记所选的文章为已发布状态"

@admin.register(YourModel)
class YourModelAdmin(admin.ModelAdmin):
    list_display = ('title', 'status', 'created_at',)
    actions = [make_published]

在这个示例中,我们首先导入了 Django 的 admin 模块以及你将要添加 Action 的 Model。接下来,定义了一个名为 make_published 的函数作为 Action。这个函数接受三个参数:modeladmin、request 和 queryset。modeladmin 参数是一个 admin.ModelAdmin 的实例,request 参数是当前请求的 HttpRequest 对象,queryset 参数是当前所选的数据集。

在函数体内,我们使用 queryset.update() 来将所选数据集的 status 字段的值改为 'p'。最后,给函数添加了一个名为 short_description 的特性,用于在 Admin 中显示 Action 的名称。

最后,我们使用 @admin.register() 装饰器为 YourModel 类注册管理器,并在 YourModelAdmin 类中定义了我们刚才创建的 Action。

示例二:

  1. 和示例一一样,在你的 Django 项目中,为你要添加 Action 的 Model 创建一个 admin.py 文件。
  2. 在 admin.py 文件中,定义一个函数来作为你要添加的 Action:
from django.contrib import admin
from .models import YourModel

def make_colorful(modeladmin, request, queryset):
    queryset.update(color='c')

make_colorful.short_description = "将所选的文章标记为彩色"

class YourModelAdmin(admin.ModelAdmin):
    list_display = ('title', 'status', 'color',)
    actions = [make_colorful]

@admin.register(YourModel)
class YourModelAdmin(admin.ModelAdmin):
    list_display = ('title', 'status', 'created_at',)
    actions = [make_colorful]

在这个示例中,我们定义了一个名为 make_colorful 的函数作为 Action。和示例一不同的是,这里我们没有使用 @admin.register() 装饰器,而是直接在 YourModelAdmin 类中定义了我们的 Action。这个示例的其余部分与示例一基本相同。

值得一提的是,我们在示例二中没有使用 @admin.register() 装饰器的原因是,我们希望在同一个管理器中定义多个 Model 的 Action。如果使用 @admin.register(),则需要为每个 Model 分别定义一个 Admin 类,这样就会显得很冗长。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Django给admin添加Action的方法实例详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 【Django】QuerySet的分页和排序

    数据查询分页功能和排序功能大家都很熟悉,本文以一个小例子介绍一下Django后台实现 id依次从6到1 [ { “detail”: “this is test”, “CreateTime”: “2016-05-22 00:06:36”, “ModifyTime”: “2016-05-22 00:06:36”, “IsDelete”: “False”, “Ty…

    Django 2023年4月13日
    00
  • windows下使用nginx + waitress 部署django

    虽然不喜欢IIS,不过有些项目又必须部署在windows上,windows下部署django的方案有IIS + wfastcgi,apache + mod_wsgi,也有超简单的部署方式如:nginx + waitress,本文主要讲的是最后一种部署方式。 程序文件 随便找个目录放置好程序文件 下载安装nginx和配置文件 1、下载下载链接:http://n…

    2023年4月10日
    00
  • python Django问题:TemplateDoesNotExist at /index/

       原因:发现Django1.8,设置要加载模板的路径时,不是直接自己定义一个TEMPLATE_DIR,然后给它赋值 解决:settings.py配置文件中添加红框代码   BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ‘DIRS’: [os.path.join…

    Django 2023年4月11日
    00
  • Django auth应用模块详解

    Django auth应用模块是什么? Django auth 应用模块是 Django 框架提供的一个内置应用模块,用于管理用户认证、用户权限、密码重置等与用户身份验证相关的任务。它提供了许多可以直接使用的视图、表单和模板,以简化身份验证相关的编程。 Django auth 模块的主要组件包括以下几个部分: User 模型:Django auth 模块提供…

    Django 2023年3月12日
    00
  • 简单的Django实现图片上传,并存储进MySQL数据库 案例——小白

    目标:通过网页上传一张图片到Django后台,后台接收并存储进数据库 真是不容易!!这个案例的代码网上太乱,不适合我,自己摸索着写,终于成功了,记录一下,仅供自己参考,有的解释可能不对,自己明白就好,哈哈哈!~!~!   1.首先用pycharm创建一个Django项目,嗯,对,这是第一步~     2. 第二步呢,改一下setting.py的设置吧,数据库…

    2023年4月9日
    00
  • Django html标签make_safe

    from django.utils.safestring import mark_safe a = mark_safe(“<a href=’#’>test</a>”)  

    Django 2023年4月9日
    00
  • 使用django-guardian实现django-admin的行级权限控制的方法

    下面是使用django-guardian实现django-admin的行级权限控制的方法的完整攻略。 什么是django-guardian? django-guardian是一个用于Django的第三方插件,它提供一种简单的方式来将对象级别的访问控制系统嵌入到你的应用程序中。 django-guardian安装 您可以使用pip安装django-guardi…

    Django 2023年5月16日
    00
  • python3+django2开发一个简单的人员管理系统过程详解

    我来为你详细讲解一下“Python3+Django2开发一个简单的人员管理系统”的完整攻略。 1. 环境搭建 首先,我们需要先安装Python3和Django2。如果你还没有安装过这两个库,可以参照以下步骤进行安装: 安装Python3:可到Python官网下载安装包,然后根据提示安装即可。 安装Django2:在终端或命令行中执行以下命令: $ pip i…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部