Django学习笔记之为Model添加Action

 更新时间:2019年04月30日 08:22:47   作者:Data&Truth  
这篇文章主要介绍了Django给admin添加Action,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在使用Django自带的admin后台的时候,他提供了一些默认的指令可以对数据进行操作, 比如批量删除,修改等 同样的我们也可以添加自己的指令。

|- Django版本:1.8

|- Python版本:3.4

models.py

class Story(models.Model):

#编辑Story状态
  STATUS_CHOICES = (
    (1, '待编辑状态'),
    (2, '待批准状态'),
    (3, '已发布状态'),
    (4, '已存档'),
  )


  title = models.CharField(max_length=100, verbose_name=u'文章')
  slug = models.SlugField(verbose_name=u'简短标题')
  category =models.ForeignKey(Category, verbose_name=u'分类')
  owner = models.ForeignKey(User, verbose_name=u'发布者')
  status = models.IntegerField(choices=STATUS_CHOICES, default=1, verbose_name=u'发布状态')

  
  class Meta:
      ordering = ['modified','created']
      verbose_name_plural = verbose_name = '文章'


  def __str__(self):
    return self.title

admin.py

class StoryAdmin(admin.ModelAdmin):
  list_display = ('title', 'owner', 'status', 'created', 'modified','read_times','top', 'id')
  search_fields = ('title', 'markdown_content')
  # 状态选择器
  list_filter = ('status', 'owner', 'created', 'modified',)
  prepopulated_fields = {'slug': ('title',)}
  actions = ['make_story_public']

  def make_story_public(self, request, queryset):
    # queryset参数为选中的Story对象
    rows_updated = queryset.update(status=3)
    message_bit = "%s 篇文章" % rows_updated
    self.message_user(request, "%s 已成功标记为已发布状态." % message_bit)
  make_story_public.short_description = u'修改选中文章为已发布状态'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何利用Python获取鼠标的实时位置

    如何利用Python获取鼠标的实时位置

    这篇文章主要给大家介绍了关于如何利用Python获取鼠标的实时位置的相关资料,主要利用的是pyautogui,一个自动化键鼠操作的Python类库,需要的朋友可以参考下
    2022-01-01
  • 图文详解宝塔centos7安装Conda的步骤

    图文详解宝塔centos7安装Conda的步骤

    在centos7上安装anaconda碰到很多的坑,分享出来,也免得以后自己忘记,下面这篇文章主要给大家介绍了关于宝塔centos7安装Conda的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 基于Python实现电影售票系统

    基于Python实现电影售票系统

    这篇文章主要介绍了通过Python实现一个简单的电影售票系统,文中的示例代码对我们学习Python有一定的帮助,感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • Python中isnumeric()方法的使用简介

    Python中isnumeric()方法的使用简介

    这篇文章主要介绍了Python中isnumeric()方法的使用,isnumeric()方法的使用是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python中time包实例详解

    python中time包实例详解

    在本篇文章里小编给大家整理的是一篇关于python中time包实例详解内容,对此有兴趣的朋友们可以学习下。
    2021-02-02
  • python实现在遍历列表时,直接对dict元素增加字段的方法

    python实现在遍历列表时,直接对dict元素增加字段的方法

    今天小编就为大家分享一篇python实现在遍历列表时,直接对dict元素增加字段的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • pygame实现井字棋之第一步绘制九宫格

    pygame实现井字棋之第一步绘制九宫格

    这篇文章主要介绍了pygame实现井字棋之第一步绘制九宫格,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • 深入解析Python中的list列表及其切片和迭代操作

    深入解析Python中的list列表及其切片和迭代操作

    这篇文章主要介绍了Python中的列表及其切片和迭代操作,文中还对tuple元组作了介绍,需要的朋友可以参考下
    2016-03-03
  • 利用rest framework搭建Django API过程解析

    利用rest framework搭建Django API过程解析

    这篇文章主要介绍了利用rest framework搭建Django API过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python访问系统环境变量的方法

    python访问系统环境变量的方法

    这篇文章主要介绍了python访问系统环境变量的方法,涉及Python操作系统环境变量的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论