You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中ModelForm提交出现双成功消息 如何禁用默认提示

问题核心原因

出现重复提示是因为你手动添加的自定义消息,和Django其他内置逻辑/组件自动生成的成功消息同时生效导致的,根据你使用的视图类型可对应以下解决方案:


解决方案

场景1:使用Django通用类视图(CreateView/UpdateView等)

绝大多数重复提示都属于这个场景:你在类视图的继承列表里引入了SuccessMessageMixin,该Mixin会在表单提交成功后自动生成默认成功提示,同时你又在form_valid方法里手动加了一遍自定义提示。
二选一解决即可:

  • 方案1:删掉你手动写的messages.success那行代码,直接通过Mixin的success_message属性自定义提示内容,示例如下:
from django.views.generic.edit import UpdateView
from django.contrib.messages.views import SuccessMessageMixin
from .models import YourModel

class TemplateUpdateView(SuccessMessageMixin, UpdateView):
    model = YourModel
    form_class = YourModelForm
    success_url = '/your/redirect/path/'
    # 直接在这里自定义提示内容,支持占位符调用模型字段
    success_message = "%(template_name)s 更新成功"
  • 方案2:删掉类视图继承列表里的SuccessMessageMixin,保留你手动写的自定义提示代码即可。

场景2:使用函数视图

如果是手动编写的函数处理表单提交,排查以下两个方向:

  • 检查是否给模型绑定了post_save信号,信号处理逻辑里自动发送了成功提示,找到对应绑定代码删除即可。
  • 检查你自定义的ModelForm类的save方法里是否内置了发送成功提示的逻辑,删掉对应代码即可。

快速排查技巧

可以先注释掉你手动写的那行messages.success(request,'{} is successfully updated'.format(obj.template_name))代码,提交表单后如果还有成功提示,就说明默认提示来自其他上层逻辑,对应上面的场景排查即可。


内容的提问来源于stack exchange,提问作者uday

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 21:03:02