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程序与C++程序的联合使用
Apr 07 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
对Python中gensim库word2vec的使用详解
May 08 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
简单了解python的内存管理机制
Jul 08 Python
python中property和setter装饰器用法
Dec 19 Python
Python 没有main函数的原因
Jul 10 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 Python
python 算法题——快乐数的多种解法
May 27 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
如何使用PHP往windows中添加用户
2006/12/06 PHP
php去除HTML标签实例
2013/11/06 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
Python实现CET查分的方法
2015/03/10 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
pycharm设置注释颜色的方法
2018/05/23 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Python 私有化操作实例分析
2019/11/21 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
大学生旅游业创业计划书
2014/01/29 职场文书
成龙洗发水广告词
2014/03/14 职场文书
安全月活动总结
2014/05/05 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
学校食品安全实施方案
2014/06/14 职场文书
农业项目合作意向书
2015/05/08 职场文书
管辖权异议上诉状
2015/05/23 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
运动会通讯稿200字
2015/07/20 职场文书