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中用于处理字符串的center()方法
May 18 Python
Python中使用不同编码读写txt文件详解
May 28 Python
深入理解Python中字典的键的使用
Aug 19 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
python 中的int()函数怎么用
Oct 17 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
Feb 20 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中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php生成圆角图片的方法
2015/04/07 PHP
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python中GIL的使用详解
2018/10/03 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
网络方面基础面试题
2012/11/16 面试题
药学专业大学生个人的自我评价
2013/11/04 职场文书
银行内勤岗位职责
2014/04/09 职场文书
食品采购员岗位职责
2014/04/14 职场文书
求职信范文大全
2014/05/26 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
2014年公司工作总结
2014/11/22 职场文书
个人总结与自我评价
2015/02/14 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python