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

Django提交POST表单后调用messages框架报'int'对象不可调用错误

报错原因

你在changepassword视图中编写的messages.SUCCESS(request,'your password has been updated')是错误用法:messages.SUCCESS是Django messages模块内置的消息级别常量,本质为整数值,不属于可调用的方法/函数,因此触发'int' object is not callable类型错误。

解决方案

有两种正确的添加SUCCESS级别消息的方式:

  • 方式一:使用通用的add_message方法(和你register视图里已经用到的写法一致)
messages.add_message(request, messages.SUCCESS, 'your password has been updated')
  • 方式二:使用级别对应的快捷方法(注意方法名是小写开头的success,不是全大写的常量名)
messages.success(request, 'your password has been updated')
模板补充说明

你贴出的模板代码开头div标签漏了左尖括号,实际使用时需要补全为<div class="alert-info">,现有逻辑已经可以正常展示消息。如果需要根据不同消息级别自动适配样式,可以修改为如下写法:

<div class="alert-{{ message.tags }}">
{% if messages %}
    {% for message in messages %}
    {{ message }}
    {% endfor %}
{% endif %}
</div>

Django会自动将消息级别转换为对应的标签字符串,比如SUCCESS级别的消息对应标签为success,可以直接匹配Bootstrap等框架的alert样式类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:36:04