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之引用和类属性的初步理解
May 15 Python
Python中利用函数装饰器实现备忘功能
Mar 30 Python
使用Python脚本操作MongoDB的教程
Apr 16 Python
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
tensorflow实现KNN识别MNIST
Mar 12 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Python Pandas数据结构简单介绍
Jul 03 Python
python中dict使用方法详解
Jul 17 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
Python matplotlib可视化之绘制韦恩图
Feb 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 上传文件的方法(类)
2009/07/30 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
js数组去重的hash方法
2016/12/22 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
python安装教程
2018/02/28 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
python中数据库like模糊查询方式
2020/03/02 Python
中学生演讲稿
2014/04/26 职场文书
解放思想演讲稿
2014/09/11 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
Nginx反向代理学习实例教程
2021/10/24 Servers