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 相关文章推荐
深入讲解Java编程中类的生命周期
Feb 05 Python
Python实现递归遍历文件夹并删除文件
Apr 18 Python
Python生成rsa密钥对操作示例
Apr 26 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
python3实现高效的端口扫描
Aug 31 Python
Python面向对象中类(class)的简单理解与用法分析
Feb 21 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
python实现MD5进行文件去重的示例代码
Jul 09 Python
Python自动化工具之实现Excel转Markdown表格
Apr 08 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
tab栏切换原理
2017/03/22 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python中super函数的用法
2017/11/17 Python
python 实现登录网页的操作方法
2018/05/11 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
英国现代绅士品牌:Hackett
2017/12/17 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
树转促学习心得体会
2014/09/10 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
python字符串的一些常见实用操作
2022/04/06 Python
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS