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进阶教程之动态类型详解
Aug 30 Python
Python处理字符串之isspace()方法的使用
May 19 Python
在Python中操作字典之update()方法的使用
May 22 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
python图像常规操作
Nov 11 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python小整数对象池和字符串intern实例解析
Mar 21 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
jenkins+python自动化测试持续集成教程
May 12 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
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
详解python的super()的作用和原理
2020/10/29 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
学生会竞选自荐信
2013/10/12 职场文书
中班幼儿评语大全
2014/04/30 职场文书
体育比赛口号
2014/06/09 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
实习班主任自我评价
2015/03/11 职场文书
Python常遇到的错误和异常
2021/11/02 Python
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server
python神经网络 使用Keras构建RNN训练
2022/05/04 Python