django - Django 管理员删除默认保存消息
问题描述
我在我的模型管理员中添加了这条额外的消息,基本上我想删除默认的。有没有人可以帮助我做到这一点?
我的实际信息:
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)
默认的有点烂!
谢谢!
解决方案
我解决了这个问题如下,虽然它不是很优雅但它工作:
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)
推荐阅读
- vue.js - 测试过的VueJS文件问题
- javascript - 如何从具有相同类、类型、值和选项卡索引的多个复选框中选择一个复选框并且复选框 ID 不断变化
- ssl - Cloudflare SSL 证书引发安全问题
- kubernetes - 访问 kubernetes pod 内主机网络上的 ip 地址
- r - 从 WSL 命令行执行 R 脚本 - 加载库时出错
- c# - 从 ASP.NET MVC 中的数据库填充下拉菜单
- database - 事务是否保证语句的原子执行(在编程意义上)?
- javascript - React Native Image 未从 android 上的本地地址呈现
- c# - 包“Microsoft.Bcl 1.1.10”已使用“恢复”
- javascript - 子组件未通过父道具更新状态