Django学习笔记之为Model添加Action

 更新时间:2019年04月30日 08:22:48   作者:Data&Truth   我要评论
这篇文章主要介绍了Django给admin添加Action,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在使用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'修改选中文章为已发布状态'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持澳门金沙网上娱乐。

相关文章

  • 详解PyCharm安装MicroPython插件的教程

    详解PyCharm安装MicroPython插件的教程

    PyCharm可以说是当今最流行的一款Python IDE了,大部分购买TPYBoard的小伙伴都会使用PyCharm编写MicroPython的程序。这篇文章给大家介绍了PyCharm安装MicroPython插件的教程,需要的朋友参考下吧
    2019-06-06
  • Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

    Python实现可设置持续运行时间、线程数及时间间隔的多线程异步po

    这篇文章主要介绍了Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能,涉及Python网络请求的创建、发送、响应、处理等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Python使用itchat模块实现简单的微信控制电脑功能示例

    Python使用itchat模块实现简单的微信控制电脑功能示例

    这篇文章主要介绍了Python使用itchat模块实现简单的微信控制电脑功能,结合实例形式分析了Python基于itchat模块控制电脑实现运行程序、截图等相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • Python使用poplib模块和smtplib模块收发电子邮件的教程

    Python使用poplib模块和smtplib模块收发电子邮件的教程

    smtplib模块一般我们比较熟悉、这里我们会来讲解使用smtplib发送SSL/TLS安全邮件的方法,而poplib模块则负责处理接收pop3协议的邮件,下面我们就来看Python使用poplib模块和smtplib模块收发电子邮件的教程
    2016-07-07
  • Selenium定时刷新网页的实现代码

    Selenium定时刷新网页的实现代码

    这篇文章主要介绍了Selenium定时刷新网页的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Python读大数据txt

    Python读大数据txt

    本文通过2个例子给大家介绍了如何使用python实现读取大文件txt的方法,有需要的小伙伴可以参考下
    2016-03-03
  • Python基于多线程实现ping扫描功能示例

    Python基于多线程实现ping扫描功能示例

    这篇文章主要介绍了Python基于多线程实现ping扫描功能,结合实例形式分析了Python多线程与进程相关模块调用操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python遍历目录的4种方法实例介绍

    Python遍历目录的4种方法实例介绍

    这篇文章主要介绍了Python遍历目录的4种方法实例介绍,本文讲解了使用os.popen运行shell列表命令、利用glob模块、利用os.listdir(推荐)、利用os.walk(推荐)等4种方法,需要的朋友可以参考下
    2015-04-04
  • python设计模式大全

    python设计模式大全

    这篇文章主要介绍了python设计模式,通过简单的代码实现了Python常见的各种设计模式,包括桥接模式、观测者模式、适配器模式、工厂模式、单例模式等,需要的朋友可以参考下
    2016-06-06
  • python异步实现定时任务和周期任务的方法

    python异步实现定时任务和周期任务的方法

    今天小编就为大家分享一篇python异步实现定时任务和周期任务的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论