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 ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python 性能优化技巧总结
Nov 01 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
python验证码识别实例代码
Feb 03 Python
python 构造三维全零数组的方法
Nov 12 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
python实现身份证实名认证的方法实例
Nov 08 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
python的Jenkins接口调用方式
May 12 Python
Python 存取npy格式数据实例
Jul 01 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
python中编写函数并调用的知识点总结
Jan 13 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 DataGrid 实现代码
2009/08/12 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
javascript实现轮显新闻标题链接
2007/08/13 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python代码制作configure文件示例
2014/07/28 Python
Python解析树及树的遍历
2016/02/03 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
Python实现把类当做字典来访问
2019/12/16 Python
留学自荐信写作方法
2014/01/27 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
2014年管理工作总结
2014/11/22 职场文书
博士论文答辩开场白
2015/06/01 职场文书
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python