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 相关文章推荐
在Django的通用视图中处理Context的方法
Jul 21 Python
判断网页编码的方法python版
Aug 12 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
Python if语句知识点用法总结
Jun 10 Python
numpy下的flatten()函数用法详解
May 27 Python
python使用minimax算法实现五子棋
Jul 29 Python
python求加权平均值的实例(附纯python写法)
Aug 22 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
基于tensorflow for循环 while循环案例
Jun 30 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 15 Python
python 列表推导和生成器表达式的使用
Feb 01 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
js 3种归并操作的实例代码
2013/10/30 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
Python开发网站目录扫描器的实现
2019/02/21 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
如何利用Python 进行边缘检测
2020/10/14 Python
如何使用Pytorch搭建模型
2020/10/26 Python
为什么要有struct关键字
2012/05/08 面试题
世界经理人咨询有限公司面试
2014/09/23 面试题
水果连锁超市创业计划书
2014/01/24 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
求职意向书范文
2014/04/01 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
商业融资计划书
2014/04/29 职场文书
物流管理专业自荐信
2014/06/23 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
以下牛机,你有几个
2022/04/05 无线电