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

Django运行ModelForm时提示'str'对象无_meta属性报错如何解决

错误原因

Django ModelForm 的 instance 参数要求传入绑定的模型类实例对象,你当前直接传入了从URL参数获取的字符串类型主键值,字符串没有Django模型内置的_meta属性,因此触发该报错。

修复方法

你需要先通过拿到的主键值从数据库查询到对应的cn_data_tables实例,再将实例传给表单的instance参数,同时建议补充异常处理避免记录不存在的场景:
修改后的views.py代码如下:

# 开头导入快捷查询方法
from django.shortcuts import get_object_or_404

def qc3_approval_view(request):
    # 1. 用GET参数的key作为主键查询对应模型实例,找不到则返回404
    target_instance = get_object_or_404(cn_data_tables, sl_no=request.GET['key'])
    # 2. 将查询到的实例传给instance参数
    cn_data_form = qc3_approval_form(instance=target_instance)
    # 后续原有逻辑保持不变
额外注意事项

你的models.py中存在一个笔误:定义的def __int__(self)方法如果是为了返回实例的可读表示,应该修改为def __str__(self),否则后续在需要打印模型实例的场景会出现预期外的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:27:04