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 系统调用的实例详解
Jul 11 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
pytorch训练imagenet分类的方法
Jul 27 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
Jupyter加载文件的实现方法
Apr 14 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
深度学习小工程练习之垃圾分类详解
Apr 14 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
PHP对字符串的递增运算分析
2010/08/08 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
PHP模板解析类实例
2015/07/09 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
JS 控件事件小结
2012/10/31 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
浅析Python中yield关键词的作用与用法
2016/11/29 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
Python递归函数特点及原理解析
2020/03/04 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
环保倡议书500字
2014/05/15 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js