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

Django中QualificationApproval外键qtitle赋值报错要求为Qualification实例

问题原因

你在给QualificationApproval对象的字段赋值时,每行赋值语句末尾多写了英文逗号,Python会将末尾带逗号的单个值自动封装为单元素元组。报错信息里的(<Qualification: Qualification object (1)>,)外层括号和末尾逗号,就说明你实际赋值的是元组,而非qtitle字段要求的Qualification实例。你打印的是赋值前原有字段的类型,自然符合要求,问题出在新赋值的内容类型不匹配。

解决方法

删除循环内所有赋值语句末尾的多余逗号即可,同时补充j变量的自增逻辑,避免每次循环都修改同一个对象:

if q:
    qua = Qualification.objects.get(pk = q.split(',')[0])
    print(type(qa[j].qtitle))
    # 移除所有赋值语句末尾的逗号
    qa[j].qtitle = qua
    qa[j].ofEqualCode = code[j]
    qa[j].porposDate = pdate[j]
    qa[j].anNo = anticipated[j]
    qa[j].sec9 = sec9
    qa[j].save()
    # 新增j自增逻辑,指向下一个待修改的对象
    j += 1

额外提示:建议增加索引边界判断,避免j超出qa查询集的长度触发索引越界错误;如果anticipated字段提交的是字符串类型,需要先转为整型再赋值给anNo字段,避免触发类型错误。

内容的提问来源于stack exchange,提问作者Habib Ur Rehman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:06:07