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实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
Python中os.path用法分析
Jan 15 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 Python
有关Python的22个编程技巧
Aug 29 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
python中wx模块的具体使用方法
May 15 Python
Python工程师必考的6个经典面试题
Jun 28 Python
python MD5加密的示例
Oct 19 Python
Python 数据可视化之Matplotlib详解
Nov 02 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
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
Python 字符串定义
2009/09/25 Python
python获取本机外网ip的方法
2015/04/15 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
Python全局变量用法实例分析
2016/07/19 Python
Python 元组操作总结
2019/09/18 Python
python使用列表的最佳方案
2020/08/12 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
英语感恩演讲稿
2014/01/14 职场文书
大学生就业求职信
2014/06/12 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
群众路线专项整治方案
2014/10/27 职场文书
英文投诉信格式
2015/07/03 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
Hive导入csv文件示例
2022/06/25 数据库