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 的 Socket 编程
Mar 24 Python
python实现数独算法实例
Jun 09 Python
Python处理JSON数据并生成条形图
Aug 05 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
获取python文件扩展名和文件名方法
Feb 02 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python保存网页图片到本地的方法
Jul 24 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 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用户指南-cookies部分
2006/10/09 PHP
php表单提交问题的解决方法
2011/04/12 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
php递归实现无限分类的方法
2015/07/28 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python 中的with关键字使用详解
2016/09/11 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
公司节能减排倡议书
2014/05/14 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
alibaba seata服务端具体实现
2022/02/24 Java/Android