Django Admin删除默认保存消息

Django Admin删除默认保存消息,django,message,default,Django,Message,Default,我已经在我的模型管理员中添加了这个额外的消息,基本上我想删除默认消息。有人能帮我做这件事吗 我的实际信息: def save_model(self, request, obj, form, change): # add an additional message user = request.user messages.info(request, "Dear " + str(user)+ " "+ " please note that your p

我已经在我的模型管理员中添加了这个额外的消息,基本上我想删除默认消息。有人能帮我做这件事吗

我的实际信息:

def save_model(self, request, obj, form, change):
        # add an additional message
        user = request.user
        messages.info(request, "Dear " + str(user)+ " "+ " please note that your parking plot has been reserved")
        super(ParcareModelAdmin, self).save_model(request, obj, form, change)
默认的有点糟糕

谢谢大家!


不是最优雅的解决方案,但您始终可以重写类的和方法,删除
self.message\u用户调用,如果您不想让
admin.py
文件变得杂乱无章,您只需在助手文件中创建一个
SilentModelAdmin
,在该文件中覆盖这些方法并删除不希望显示的消息。

我解决了这个问题,如下所示,虽然它不是很优雅,但可以工作:

from django.contrib import messages
from django.contrib import admin

# Register your models here.
from . import models


class RemoveAdminDefaultMessageMixin:

    def remove_default_message(self, request):
        storage = messages.get_messages(request)
        try:
            del storage._queued_messages[-1]
        except KeyError:
            pass
        return True

    def response_add(self, request, obj, post_url_continue=None):
        """override"""
        response = super().response_add(request, obj, post_url_continue)
        self.remove_default_message(request)
        return response

    def response_change(self, request, obj):
        """override"""
        response = super().response_change(request, obj)
        self.remove_default_message(request)
        return response

    def response_delete(self, request, obj_display, obj_id):
        """override"""
        response = super().response_delete(request, obj_display, obj_id)
        self.remove_default_message(request)
        return response


class MessageAdmin(RemoveAdminDefaultMessageMixin, admin.ModelAdmin):

    def save_model(self, request, obj, form, change):
        self.message_user(request, 'save success!')
        return super().save_model(request, obj, form, change)


admin.site.register(models.Message, MessageAdmin)