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

Django更新数据时报TypeError:'method' object is not subscriptable

问题原因及修复方案

1. 直接触发TypeError的核心错误

views.py中你对request.POST.get的调用语法错误:
你写的是:

problemmember.duyurutipi = request.POST.get['duyurutipi']

get是request.POST对象的方法,需要用圆括号传参,不是方括号,方括号是直接取字典键的写法,混用就会触发TypeError。
修改为以下两种写法任意一种即可:

  • 写法1(推荐,键不存在时返回None不会报错):
problemmember.duyurutipi = request.POST.get('duyurutipi')
  • 写法2(和你其他字段写法一致,键不存在直接报错):
problemmember.duyurutipi = request.POST['duyurutipi']

2. 其他潜在报错问题

2.1 日期字段类型不匹配

你的olusturulmatarihi字段是DateTimeField类型,而表单提交的是字符串格式的日期,直接赋值会触发类型错误。且该字段配置了auto_now_add=True,默认创建时自动生成,不需要更新时手动修改,建议直接删除views.py中的这一行:

problemmember.olusturulmatarihi = request.POST['olusturulmatarihi']

如果确实需要修改该字段,需要先把表单提交的字符串转为datetime类型再赋值。

2.2 表单action路径风险

你当前表单的action写的是相对路径action="problemduyurusuupdate/{{ problemmembers.id }}",如果当前页面的URL不是站点根路径,会导致提交地址拼接错误。建议用Django的url模板标签绑定路由,比如你路由中如果给更新接口命名为problemduyurusuupdate,就修改为:

<form class="form-horizontal" action="{% url 'problemduyurusuupdate' problemmembers.id %}" method="POST">

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:06:02