重写 Django Admin 的 Delete Selected 动作

By 刘志军, 2019-05-20, 分类: qa

django

Django 管理后面有个删除选择项的 Action,有时我们想对它进行重写,在删除的时候做一些额外操作,例如删除model的同时,更新与之关联的对象,默认是这样的

微信截图_20190520143754.png

重写后是这样的:

微信截图_20190520144959.png

具体的实现方式:

@admin.register(RecommendArticle)
class RecommendArticleAdmin(admin.ModelAdmin):

    actions = ['delete_selected']

    def delete_selected(self, request, obj):
        for o in obj.all():
            # 这里除了删除选择的对象之外,我还更新了其它对象
            Article.objects.filter(id=o.id).update(is_ad=1)
            o.delete()

    delete_selected.short_description = '移除推荐列表'

有问题可以扫描二维码和我交流

关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2020-01-07
Django入门与实践-第1章:环境搭建
2020-01-07
Django入门与实践-第16章:用户登录
2014-02-08
Django自定义User模型
2020-01-07
Django入门与实践-第22章:基于类的视图
2019-05-24
Django 数据模型 ForeignKey 的 on_delete 属性的可选值
2020-01-07
Django入门与实践-第24章:我的账户视图
2020-01-07
Django入门与实践-第0章:前言
2020-01-07
Django入门与实践-第18章:访问已登录用户
2020-01-07
Django入门与实践-第7章:模板引擎设置
2020-05-21
Django 集成阿里云OSS