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使用paramiko模块实现ssh远程登陆上传文件并执行
Jan 27 Python
Python中除法使用的注意事项
Aug 21 Python
Python是编译运行的验证方法
Jan 30 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
python opencv实现运动检测
Jul 10 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
Python中如何导入类示例详解
Apr 17 Python
Django model select的多种用法详解
Jul 16 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
Ubuntu20下的Django安装的方法步骤
Jan 24 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
JAVA/JSP学习系列之四
2006/10/09 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
javascript基本算法汇总
2016/03/09 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
学生感冒英文请假条
2014/02/04 职场文书
服装设计师求职信
2014/06/04 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
2014年学习部工作总结
2014/11/12 职场文书
党员个人自我评价
2015/03/03 职场文书
推荐信范文大全
2015/03/27 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
Python import模块的缓存问题解决方案
2021/06/02 Python
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android