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中datetime常用时间处理方法
Jun 15 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
Python MD5加密实例详解
Aug 02 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
python绘制封闭多边形教程
Feb 18 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
结束运行python的方法
Jun 16 Python
基于Python实现天天酷跑功能
Jan 06 Python
Django中template for如何使用方法
Jan 31 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
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
eclipse php wamp配置教程
2016/06/30 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
python 正则式使用心得
2009/05/07 Python
python判断端口是否打开的实现代码
2013/02/10 Python
python进阶教程之循环对象
2014/08/30 Python
Python运用于数据分析的简单教程
2015/03/27 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
python操作toml文件的示例代码
2020/11/27 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
一个C/C++编程面试题
2013/11/10 面试题
配件采购员岗位职责
2013/12/03 职场文书
优秀教师工作感言
2014/02/16 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
活动总结的格式
2014/05/07 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server