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中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
基于python爬虫数据处理(详解)
Jun 10 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
python实现自动解数独小程序
Jan 21 Python
哪些是python中web开发框架
Jun 17 Python
彻底解决Python包下载慢问题
Nov 15 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
python3 re返回形式总结
Nov 20 Python
Python Selenium库的基本使用教程
Jan 04 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匹配UTF-8中文的正则表达式
2015/05/13 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
几种tab切换详解
2017/02/03 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
Python获取邮件地址的方法
2015/07/10 Python
python实现折半查找和归并排序算法
2017/04/14 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python金融数据可视化汇总
2017/11/17 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
详解python3中tkinter知识点
2018/06/21 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
Python发展简史 Python来历
2019/05/14 Python
python输入错误后删除的方法
2019/10/12 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
服装机修工岗位职责
2013/12/26 职场文书
擅自离岗检讨书
2014/02/11 职场文书
中华魂演讲稿
2014/05/13 职场文书
如何写早恋检讨书
2014/09/10 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python