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实现线程池的方法
Jun 30 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
使用Python对微信好友进行数据分析
Jun 27 Python
浅谈Django的缓存机制
Aug 23 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
python常用排序算法的实现代码
Nov 08 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
Tensorflow 实现释放内存
Feb 03 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
Pandas搭配lambda组合使用详解
Jan 22 Python
python如何将mat文件转为png
Jul 15 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伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php图片缩放实现方法
2014/02/20 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python制作钉钉加密/解密工具
2016/12/07 Python
python实现周期方波信号频谱图
2018/07/21 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Django之form组件自动校验数据实现
2020/01/14 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python Paramiko使用示例
2020/09/21 Python
python中time tzset()函数实例用法
2021/02/18 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
咖啡店自主创业商业计划书
2014/01/22 职场文书
大学生个人总结范文
2015/02/15 职场文书
服装店员工管理制度
2015/08/07 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python