Django给admin添加Action的步骤详解

作者:破晓技术部落 时间:2022-10-12 00:59:40 

前言

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

来源:http://litets.com/article/2019/4/29/386.html

标签:django,admin,action
0
投稿

猜你喜欢

  • 使用简单工厂模式来进行Python的设计模式编程

    2021-02-17 11:53:50
  • python可视化分析的实现(matplotlib、seaborn、ggplot2)

    2021-10-20 13:59:21
  • Python 将pdf转成图片的方法

    2021-11-14 09:16:33
  • Python字符串转换成浮点数函数分享

    2022-10-04 01:04:37
  • ORA-28002 Oracle 11g存在密码过期问题解决方案

    2024-01-16 10:29:52
  • asp如何通过表单创建一个Word?

    2010-06-07 20:56:00
  • 在Python中使用__slots__方法的详细教程

    2022-10-30 09:46:10
  • 如何利用Python批量处理行、列和单元格详解

    2023-02-05 05:07:35
  • 如何用Anaconda搭建虚拟环境并创建Django项目

    2022-02-25 02:30:21
  • Python 中pandas索引切片读取数据缺失数据处理问题

    2021-06-02 05:13:28
  • IE6 升级要不要?

    2009-07-23 20:44:00
  • linux中数据库的定时备份

    2024-01-25 17:43:25
  • JS中setTimeout()的用法详解

    2023-06-26 20:55:17
  • Python正则表达式的另类解答

    2023-08-02 06:58:04
  • Python异常类型以及处理方法汇总

    2021-11-22 00:07:03
  • 浅谈Python3实现两个矩形的交并比(IoU)

    2021-09-06 19:31:56
  • Python如何使用ConfigParser读取配置文件

    2023-11-03 03:05:30
  • 如何将bag文件批量转成mp4

    2021-06-10 11:04:54
  • 利用PyQt5中QLabel组件实现亚克力磨砂效果

    2023-12-13 18:33:04
  • 浅谈如何提高PHP代码的质量

    2024-06-05 09:47:05
  • asp之家 网络编程 m.aspxhome.com