Django学习笔记:为Model添加Action

|- Django版本:1.8

|- Python版本:3.4

复制代码
models.py

1
class Story(models.Model): 2 3 #编辑Story状态 4 STATUS_CHOICES = ( 5 (1, '待编辑状态'), 6 (2, '待批准状态'), 7 (3, '已发布状态'), 8 (4, '已存档'), 9 ) 10 11 12 title = models.CharField(max_length=100, verbose_name=u'文章') 13 slug = models.SlugField(verbose_name=u'简短标题') 14 category =models.ForeignKey(Category, verbose_name=u'分类') 15 owner = models.ForeignKey(User, verbose_name=u'发布者') 16 status = models.IntegerField(choices=STATUS_CHOICES, default=1, verbose_name=u'发布状态') 17 18 19 class Meta: 20 ordering = ['modified','created'] 21 verbose_name_plural = verbose_name = '文章' 22 23 24 def __str__(self): 25 return self.title
复制代码
复制代码
admin.py

1
class StoryAdmin(admin.ModelAdmin): 2 list_display = ('title', 'owner', 'status', 'created', 'modified','read_times','top', 'id') 3 search_fields = ('title', 'markdown_content') 4 # 状态选择器 5 list_filter = ('status', 'owner', 'created', 'modified',) 6 prepopulated_fields = {'slug': ('title',)} 7 actions = ['make_story_public'] 8 9 def make_story_public(self, request, queryset): 10 # queryset参数为选中的Story对象 11 rows_updated = queryset.update(status=3) 12 message_bit = "%s 篇文章" % rows_updated 13 self.message_user(request, "%s 已成功标记为已发布状态." % message_bit) 14 make_story_public.short_description = u'修改选中文章为已发布状态'
复制代码

 

posted @   Data&Truth  阅读(1479)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示