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中引入bootstrap的详细图文详解

    下面是Django中引入bootstrap的详细攻略和示例说明: 1. 安装Bootstrap 首先,我们需要安装Bootstrap。Bootstrap是一个开源的前端框架,提供了一系列易于使用的HTML、CSS和JavaScript库,可以快速构建美观的响应式网站和应用程序。 有很多种方法可以安装Bootstrap,例如从官方网站下载、使用CDN、使用NP…

    Django 2023年5月16日
    00
  • 详解Django模板系统

    Django模板系统是Django框架的一部分,被用于生成HTML页面,并支持动态生成内容。Django模板系统提供了许多内置标签和过滤器,以便于开发者对页面进行更方便的操作和控制。下面我们来了解一下Django模板系统的详细。 显示变量 在Django模板系统中,通过{{}}来显示变量。 如下所示: <h1>Hello, {{ name }}&…

    Django 2023年3月13日
    00
  • Django model数据 时间格式

    from datetime import datetime dt = datetime.now() print ‘时间:(%Y-%m-%d %H:%M:%S %f): ‘ , dt.strftime( ‘%Y-%m-%d %H:%M:%S %f’ ) print ‘时间:(%Y-%m-%d %H:%M:%S %p): ‘ , dt.strftime( ‘%y…

    Django 2023年4月9日
    00
  • 【Python web 开发】social_django 集成第三方登录

     1、背景: 我们之前写的一些接口仅仅是知道微博授权的一个流程,要把第三方授权登录的用户的user_id  弄到我们的user_profile 中来才是 符合业务的需求的 因此gitbub上已经有一些开源的第三方插件使用 social_app_django     social-auth-app-django模块是专门用于Django的第三方登录OAuth2…

    Django 2023年4月12日
    00
  • Django之url定义和ORM框架的使用

    前言,Django安装 pip install django # 官网安装最新版本 pip install django -i “https://pypi.doubanio.com/simple/” # 指定安装源 pip install django –upgrate # 更新Django pip uninstall django # 卸载django …

    Django 2023年4月11日
    00
  • python框架django中结合vue进行前后端分离

    使用Python框架Django和JavaScript框架Vue结合进行前后端分离,能够提高开发效率,优化代码结构和分工。下面是一个详细的攻略,分为两个示例说明。 示例一:前后端分离项目创建 1. 创建Django项目 使用Django的脚手架 django-admin 可以快速创建一个Django项目,命令如下: django-admin startpro…

    Django 2023年5月16日
    00
  • vscode搭建python Django网站开发环境的示例

    下面就是针对“vscode搭建python Django网站开发环境”的完整攻略。 示例一 步骤一:安装Visual Studio Code 首先,我们需要安装Visual Studio Code,这是一款非常流行的跨平台轻量级IDE,使用非常便捷。可以在官网下载到符合自己系统版本的安装包:https://code.visualstudio.com 步骤二:…

    Django 2023年5月16日
    00
  • Django查询数据库性能优化

    现在有一张用户信息的数据表,表中记录了10个用户的姓名,昵称,年龄,工作等信息, models文件 from django.db import models class Job(models.Model): title=models.CharField(max_length=32) class UserInfo(models.Model): username…

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