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 相关文章推荐
wxPython 入门教程
Oct 07 Python
Python 不同对象比较大小示例探讨
Aug 21 Python
Python实现二维有序数组查找的方法
Apr 27 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
通过shell+python实现企业微信预警
Mar 07 Python
如何实现Django Rest framework版本控制
Jul 25 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python算法学习之计数排序实例
2013/12/18 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Python如何急速下载第三方库详解
2020/11/02 Python
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
学习经验交流会主持词
2014/04/01 职场文书
校园演讲稿汇总
2014/05/21 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
初婚未育证明样本
2014/10/24 职场文书
会计电算化实训报告
2014/11/04 职场文书
怎样写离婚协议书
2015/01/26 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
创业计划书之面包店
2019/09/17 职场文书