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 26 Python
python从ftp下载数据保存实例
Nov 20 Python
Python获取脚本所在目录的正确方法
Apr 15 Python
Python获取服务器信息的最简单实现方法
Mar 05 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
Python 读写文件的操作代码
Sep 20 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
python如何从键盘获取输入实例
Jun 18 Python
Django 实现图片上传和下载功能
Dec 31 Python
手把手教你怎么用Python实现zip文件密码的破解
May 27 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版
2006/10/09 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
php处理复杂xml数据示例
2016/07/11 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
python3设计模式之简单工厂模式
2017/10/17 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
Pytorch之Variable的用法
2019/12/31 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
汇源肾宝广告词
2014/03/20 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
无罪辩护词范文
2015/05/21 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
Js类的构建与继承案例详解
2021/09/15 Javascript
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL