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自动化测试实例解析
Sep 28 Python
在Python中进行自动化单元测试的教程
Apr 15 Python
python学习教程之使用py2exe打包
Sep 24 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
Python多进程原理与用法分析
Aug 21 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
python交互模式基础知识点学习
Jun 18 Python
Python常用类型转换实现代码实例
Jul 28 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 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中使用unset销毁变量并内存释放问题
2012/07/05 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
node.js操作mongodb简单示例分享
2017/05/25 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
python计数排序和基数排序算法实例
2014/04/25 Python
python实现合并两个数组的方法
2015/05/16 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
使用Python实现画一个中国地图
2019/11/23 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
python tqdm库的使用
2020/11/30 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
女大学生自我鉴定
2013/12/09 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
庆七一活动总结
2014/08/27 职场文书
销售人员管理制度
2015/08/06 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
Android Studio 计算器开发
2022/05/20 Java/Android