Django学习笔记之为Model添加Action
在使用Django自带的admin后台的时候,他提供了一些默认的指令可以对数据进行操作,比如批量删除,修改等同样的我们也可以添加自己的指令。
classStory(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'发布状态') classMeta: ordering=['modified','created'] verbose_name_plural=verbose_name='文章' def__str__(self): returnself.title
classStoryAdmin(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'] defmake_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'修改选中文章为已发布状态'