Django给admin添加Action的步骤详解


Posted in Python onMay 01, 2019

前言

django 的 admin 是个非常方便的admin portal,可以根据自己的需要重写.

在使用Django自带的admin后台的时候,他提供了一些默认的指令可以对数据进行操作, 比如批量删除,修改等

Django给admin添加Action的步骤详解

同样的我们也可以添加自己的指令。

更多更详细请看官方文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/

创建一个Django项目

$ django-admin startproject DjangoActions
$ cd DjangoActions
$ python3 manage.py startapp mysite

添加model

打开mysite下的models.py

from django.db import models


class Article(models.Model):
 # 文章状态,类似枚举
 STATUS_CHOICES = (
  ('d', '草稿'),
  ('p', '发布'),
 )
 # 标题
 title = models.CharField(max_length=30)
 # 内容
 body = models.TextField()
 # 状态
 status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='d')

 def __str__(self):
  return self.title

将Article注册到admin

打开mysite下的admin.py

from django.contrib import admin
from .models import Article


# 指令处理函数,参数固定写法
def make_article_published(modeladmin, request, queryset):
 # queryset 是从数据库查询到的model set
 # 更新status状态为p,在此处就是Article
 queryset.update(status='p')


# 此指令的名称
make_article_published.short_description = '更改状态为发布'


#将Article注册到后台
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
 # 后台列表展示的字段
 list_display = ('title', 'status')
 # 动作集合
 actions = [make_article_published]

启动服务

1.首先同步数据库

$ python3 manage.py makemigrations
$ python3 manage.py migrate

2.创建超级用户

$ python3 manage.py createsuperuser

按照提示操作即可

3.启动服务

$ python3 manage.py runserver

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中的jquery PyQuery库使用小结
May 13 Python
python清除字符串里非字母字符的方法
Jul 02 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
Flask-Mail用法实例分析
Jul 21 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
numpy库reshape用法详解
Apr 19 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Django中ORM的基本使用教程
Dec 22 Python
AI:如何训练机器学习的模型
Apr 16 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 Python
Django重置migrations文件的方法步骤
May 01 #Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 #Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 #Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 #Python
python实现定时压缩指定文件夹发送邮件
Dec 22 #Python
python定时复制远程文件夹中所有文件
Apr 30 #Python
python实现图片转字符小工具
Apr 30 #Python
You might like
Terran热键控制
2020/03/14 星际争霸
php self,$this,const,static,->的使用
2009/10/22 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
深入理解js promise chain
2016/05/05 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
Python字典对象实现原理详解
2019/07/01 Python
python内存管理机制原理详解
2019/08/12 Python
python psutil监控进程实例
2019/12/17 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
如何理解委托
2012/01/06 面试题
入党申请书自我鉴定
2013/10/12 职场文书
技术总监的工作职责
2013/11/13 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
2014年领班工作总结
2014/11/25 职场文书
入党介绍人考察意见
2015/06/01 职场文书
环保建议书作文300字
2015/09/14 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技