django xadmin中action的使用

本文介绍了如何在Django Xadmin中利用action功能进行批量修改模型类属性和执行方法,以满足业务上的批量处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django xadmin中action的使用

由于业务需求需要在模型类中批量修改某些属性,或批量执行某个方法, 采用 xadmin 中提供的 action 方法完美解决该问题:
action 使用如下:

# xadmin.py 中

from .model import User
from django.http import HttpResponseRedirect
from xadmin.plugins.actions import BaseActionView
from mesh_service_xadmin.apps.service.tasks import krpano

class PanoAction(BaseActionView):
    action_name = 'krpano image'
    model_perm = 'change'
    description = '使用 krpano 切割图片'
    def do_action(self, queryset):
        for obj in queryset:
            user_id = obj.id
            username = obj.username
            # celery 异步调用
           pano.delay(user_id, username)
			# 返回或者不返回 HttpResponse对象都可以,如果不返回的话默认是重定向到原本页面
			msg = "置为‘是’修改成功 "
			self.message_user(msg, 'success')	#这里的值默认是info,还有warning和error
			return HttpResponseRedirect(self.request.get_full_path())	#重定向到原本请求的页面

class UserModelAdmin(object):
    list_display = ['id', 'username']
    list_editab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值