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获取网页上图片下载地址的方法
Mar 11 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
Python使用functools实现注解同步方法
Feb 06 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
python远程连接服务器MySQL数据库
Jul 02 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
pandas 层次化索引的实现方法
Jul 06 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
pandas取dataframe特定行列的实现方法
May 24 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实现天干地支计算器示例
2014/03/14 PHP
php过滤敏感词的示例
2014/03/31 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php单例模式示例分享
2015/02/12 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
vue-router history模式下的微信分享小结
2018/07/05 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
python 重命名轴索引的方法
2018/11/10 Python
python3人脸识别的两种方法
2019/04/25 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
劳动实践课感言
2014/02/01 职场文书
大型晚会策划方案
2014/02/06 职场文书
人事局接收函
2015/01/31 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
小学新课改心得体会
2016/01/22 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
Python Numpy库的超详细教程
2022/04/06 Python