Django学习笔记之为Model添加Action


Posted in Python onApril 30, 2019

在使用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使用Berkeley DB数据库实例
Sep 26 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
解决python3 安装不了PIL的问题
Aug 16 Python
python 变量初始化空列表的例子
Nov 28 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
python3.4中清屏的处理方法
Jul 06 Python
Python Opencv实现图像轮廓识别功能
Mar 23 #Python
python opencv实现图像边缘检测
Apr 29 #Python
Python Django给admin添加Action的方法实例详解
Apr 29 #Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 #Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 #Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 #Python
详解【python】str与json类型转换
Apr 29 #Python
You might like
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
js中eval详解
2012/03/30 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
python实现分页效果
2017/10/25 Python
python实现excel读写数据
2021/03/02 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
Python获取时间戳代码实例
2019/09/24 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python numpy 反转 reverse示例
2019/12/04 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
公务员总结性个人自我评价
2013/12/05 职场文书
小区门卫值班制度
2014/01/24 职场文书
战略合作意向书范本
2014/04/01 职场文书
房产转让协议书
2014/04/11 职场文书
试用期辞职信范文
2015/03/02 职场文书
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技