def delete_queryset(self, request, queryset):
# 先过滤出允许删除的数据
allowed = queryset.exclude(audit_status='approved')
blocked = queryset.filter(audit_status='approved')
# 执行删除并获取删除数量
deleted_count, _ = allowed.delete() # 返回(删除数量, 各模型删除数量)
# 自定义消息推送
if deleted_count:
messages.success(request, f"✅ 成功删除 {deleted_count} 条数据")
if blocked.exists():
messages.warning(request, f"⚠️ {blocked.count()} 条已审核数据被保留")
# 返回True阻止默认消息
# 4. 完全阻止默认消息的核心方案
return True
返回了true走自定义删除逻辑,为什么还要提示删除成功呢?重新刷新页面才有最新的通知。