django 重写admin删除按钮(django admin 重写delete())

原作者 http://www.axiaoxin.com/article/151/

亲测可用

models.py

class TableManager(models.Model):
    name = models.CharField(max_length=200, blank=False, null=False, verbose_name="表名")
    insert_time = models.DateTimeField(default=datetime.datetime.now, verbose_name="数据插入时间", blank=True, null=True)

    class Meta:
        verbose_name = '表管理'
        verbose_name_plural = verbose_name
        db_table = 'table_manager'
    def delete(self):
    
        from chuanyun_sync_db_app.admin import scheduler
        scheduler.remove_job(self.name)     这两行是自己写的定时任务,改成自己的就好
        
        super(TableManager, self).delete()

admin.py
主要就是actions添加写的函数名,并添加这个函数,其他的list_display…这些玩意 是我懒得删除

class TableManagerAdmin(admin.ModelAdmin):
    # 表格显示的字段
    list_display = ['name']

    # 修改的时候允许修改的字段
    fields = ['name', 'SchemaCode']

    # 添加搜索框
    search_fields = ['name']

    # 设置哪些字段可以点击进入编辑界面
    list_display_links = ['name']

    # 增加自定义按钮
    actions = ['delete_selected']

    def delete_selected(modeladmin, request, queryset):
        c = 0
        for i in queryset:
            i.delete()
            c += 1
        msg = '成功删除了{}个表管理'.format(c)
        modeladmin.message_user(request, msg)   原作者写的删除后没提示,这里添加
    delete_selected.short_description = '删除已选项'
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值