Django之按钮(actions)

开篇就是道歉,哈哈哈哈,托更了好久好久,最近太忙了没啥时间更新,各位看官有催更的阔以给我私信哇,希望各位看官给个三连!!!😍😍😍😍

一)简介

"actions"按钮是Django框架中的一个特殊按钮,用于批量处理或操作多个数据记录。该按钮通常用于Django的管理界面中,允许用户选择多个记录,并对它们执行相同的操作。
通过使用"actions"按钮,您可以在管理界面中轻松执行批量操作,如删除、导出、标记等。它提供了一个简便的方式来处理大量数据记录,而无需逐个处理每个记录。"actions"按钮的使用非常简单,您只需在Django模型的管理类中定义一个方法,该方法将执行您想要的批量操作。然后,将该方法添加到管理类的actions属性中,以便在管理界面中显示"actions"按钮。用户可以通过选择相应的记录并点击"actions"按钮来执行批量操作。当用户触发"actions"按钮时,Django将调用你定义的方法来处理所有选中的记录。
总之,"actions"按钮是Django框架中用于批量处理或操作多个数据记录的特殊按钮。它使得在管理界面中进行批量操作变得更加方便和高效。

二)使用

1)自定义按钮的功能

关于按钮的功能其实没有那么多的讲究,我们使用自定义按钮只是去实现自己想要的业务逻辑,只需要用函数去实现效果就好,所以按钮一般放在我们的项目中具体的app的admin.py文件中。具体的按钮格式如下:

def custom_button(self, request, queryset):pass

例如,我们需要定义一个名为“lend”的按钮,那么它会实现一个最简单的功能去打印“hello,world!”在控制台:

#按钮
actions = ['lend']
#自定义的按钮功能
def lend(self,request,queryset):print "hello,world!"

如上,我们使用def函数去定义了按钮的功能后,我们还需要使用如下格式去注册按钮在admin.py中,只有这样才可以在admin的后台页面中显示出来:

actions = ['']

当然,自定义按钮的功能有很多,根据你自己的业务逻辑去编辑自己的自定义按钮吧!

2)按钮样式

django admin 默认提供了自定义按钮的支持,但是样式、图标均不可自定义,simplepro在django admin 自定义action的基础上增加了样式、图标、按钮类型自定义。
在这里我将使用具体的例子给大家一个比较直观的观看感受:

  • short_description,string类型,按钮在admin界面上展示的名字
lend.short_description = '上架'

image.png

  • style,string类型,按钮文本的颜色
lend.style = 'color:black;'

image.png

  • icon,string类型,按钮的图标,有想深入了解的读者可以自行查阅:https://element.eleme.cn/#/zh-CN/component/icon
lend.icon = 'fas fa-audio-description'

image.png

  • type,string类型,按钮的具体类型,有想深入了解的读者可以自行查阅:https://element.eleme.cn/#/zh-CN/component/button
lend.type = 'warning'
#warning这个类型的底色是黄色,所以大家可以看见展示出来的底色是黄色

当然,还有着很多的方法,各位看官可以自行查阅一下呢。

3)按钮方法解释

上文我们说过,按钮的默认格式:

def custom_button(self, request, queryset):pass

那么具体的三个参数是什么意思?

字段类型说明
self当前类对象本身
requestHttpRequest请求
querysetQueryset查询对象,会自动增加过滤参数

那么在这里,相信大家看到了这个熟悉又陌生的request,在这里我想详细介绍一下关于request.POST中的参数获取:

字段类型说明
actionstring该值是用于simplepro路由使用,可以不予理会
allstring取值0和1,0未全部选择,1全部选中
keystring自定义按钮的方法名
idsstring逗号分隔的选中的id,如果all=1,该值没有

这里说一个例子:

def test(self, request, queryset):post=request.POSTaction=post.get('action')print(f"获取的action:{action}")pass

那既然有获取参数,当然也有出参,当然,一般都指的是自定义按钮方法返回的数据,例如:

def test(self, request, queryset):return {'state': False,'msg': '用户关联的数据还没有删除!'}

同时,Django内置的message也提供了支持:

def test(self, request, queryset):messages.add_message(request, messages.SUCCESS, '操作成功123123123123')

三)总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【环境配置】虚拟环境配置

创建虚拟环境 conda create -n pytorch python3.9安装成功提示 激活虚拟环境 activate pytorch安装pytorch 查看 python 版本——python 退出 python——exit() 对照 python 与 pytorch 的对应关系 pytorch 地址: https://pytorch.org/get-started/previous-…

docker-compose部署openldap

前段时间在本地搭建了一套gitlab geo测试环境,因为需要集成ldap,所以特意搭建下,特此作为笔记记录下。 文章目录 1. 前置条件2. 编写docker-openldap.yml文件3. 登录4. 使用创建组创建用户登录测试 1. 前置条件 安装docker-compose 安装docke…

OpenEuler安装内网穿透工具实现ssh连接openEuler系统

文章目录 1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 本文主要介绍在openEuler中安装Cpolar内网穿透工具实现远程也可以ssh 连接openEuler系统使用. 欧拉操作系统(openEuler, 简称“欧拉”…

CentOS进入单用户模式

一、重启 二、出现内核选项 按“e” 三、编辑这一行 输入 rw init/sysroot/bin/sh 四、进入单用户模式 ctrlx 进入 五、切换目录 chroot /sysroot 六、然后你就操作你的系统了。 修改密码等等

【adb】--- win10 配置 adb环境 超详细 (持续更新中)

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【adb】--- win10 配置 adb环境 超详细 &…

(10)Linux冯诺依曼结构操作系统的再次理解

💭 前言:本章我们首先会明确冯诺依曼体系结构的概念,旨在帮助大家理解体系结构在硬件角度去理解数据流走向的问题。理解完之后我们再去谈操作系统、更多有关操作系统的细节,着重谈谈操作系统概念与定位、操作系统是如何去做管理的…

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.沙猫群算法4.实验参数设定5.算法结果6.参考文…

【python】python课设 天气预测数据分析及可视化(完整源码)

目录 1. 前言2. 项目结构3. 详细介绍3.1 main.py3.2 GetModel.py3.3 GetData.py3.4 ProcessData.py3.5天气网.html 4. 成果展示 1. 前言 本文介绍了天气预测数据分析及可视化的实现过程使用joblib导入模型和自定义模块GetModel获取模型,输出模型的MAE。使用pyechart…

yolo实现数据增强(数据集不够,快速增加数据集)

目录结构 附上数据增强的全部代码 # -*- codingutf-8 -*-import time import random import copy import cv2 import os import math import numpy as np from skimage.util import random_noise from lxml import etree, objectify import xml.etree.ElementTree as ET imp…

双端队列、优先级队列、阻塞队列

双端队列、优先级队列、阻塞队列 文章目录 双端队列、优先级队列、阻塞队列1 双端队列1.1 概述1.2 应用实例1.2.1 双端链表实现1.2.2 数组实现1.2.3 测试代码 1.3 课后作业- LeeTCode103 2. 优先级队列2.1 概述2.2 基于无序数组实现2.3 基于有序数组实现2.3 堆实现优先级队列2.…

注意力机制(数学公式)

人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性 计算机注意力机制是为了让卷积神经网络注意到他更加需要注意的地方 ,而不是什么都关注 。 分为三种注意力机制,空间注意力机制,通道注意力机制,以及两者的结合。 …

HTTP 原理

HTTP 原理 HTTP 是一个无状态的协议。无状态是指客户机(Web 浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端…

算法基础之最长公共子序列

最长公共子序列 核心思想: 线性dp 集合定义 : f[i][j]存 a[1 ~ i] 和 b[1 ~ j] 的最长公共子序列长度 状态计算: 分为取/不取a[i]/b[j] 共四种情况 其中 中间两种会包含两个都不取的情况(去掉) 但是因为取最大值 有重复也没事用f[i-1][j] 和 f[i][j-1]表…

案例分析:西门子智能工厂

西门子全球首家原生数字化工厂,以其独特的数字化技术,在虚拟世界中构建了工厂的数字孪生,从而实现了从需求分析、规划设计、施工实施到生产运营全过程的数字化。这一原生数字化工厂的创新之处在于,它开创性地运用了原生数字孪生理…

2023年12月25日:串口发出控制命令

代码 uart4.c #include "uart4.h"void uart4_config() {//*****************************************//使能GPIOB|GPIOG|UART4外设时钟RCC->MP_AHB4ENSETR |(0x1<<6);RCC->MP_AHB4ENSETR |(0x1<<1);RCC->MP_APB1ENSETR |(0x1<<16);RCC…

27 redis 的 sentinel 集群

前言 redis 的哨兵的相关业务功能的实现 哨兵的主要作用是 检测 redis 主从集群中的 master 是否挂掉, 单个哨兵节点识别 master 下线为主管下线, 超过 quorum 个 哨兵节点 认为 master 挂掉, 识别为 客观下线 然后做 failover 的相关处理, 重新选举 master 节点 我们这里…

平衡二叉树的构建(递归

目录 1.概念&#xff1a;2.特点&#xff1a;3.构建方法&#xff1a;4.代码&#xff1a;小结&#xff1a; 1.概念&#xff1a; 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;&#xff0c;也称为AVL树&#xff0c;是一种二叉树&#xff0c;它满足每个节点的左子树和右…

异常和智能指针

智能指针的认识 智能指针是一种C语言中用于管理动态内存的工具&#xff0c;它们可以自动管理内存的分配和释放&#xff0c;从而避免内存泄漏和悬空指针等问题。智能指针可以跟踪指向的对象的引用次数&#xff0c;并在需要时自动释放被引用的内存&#xff0c;这极大地提高了内存…

openGauss学习笔记-173 openGauss 数据库运维-备份与恢复-导入数据-对表执行VACUUM

文章目录 openGauss学习笔记-173 openGauss 数据库运维-备份与恢复-导入数据-对表执行VACUUM openGauss学习笔记-173 openGauss 数据库运维-备份与恢复-导入数据-对表执行VACUUM 如果导入过程中&#xff0c;进行了大量的更新或删除行时&#xff0c;应运行VACUUM FULL命令&…

关于合同能源管理

合同能源管理模式&#xff1a;我投资、你节能、收益共享 合同能源管理&#xff08;EPC——Energy Performance Contracting&#xff09;&#xff1a;节能服务公司与用能单位以契约形式约定节能项目的节能目标&#xff0c;节能服务公司为实现节能目标向用能单位提供必要的服务&…