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

Django 4.2.9更新Project报错:需传入Customer实例而非元组

Django 4.2.9更新Project模型时ValueError异常修复

问题现象

更新Project模型实例时触发如下错误:

Internal Server Error: /edit-project
raise ValueError(
ValueError: Cannot assign "('customer',)": "Project.customer" must be a "Customer" instance

问题原因

视图中给Project实例字段赋值时,每一行末尾都添加了逗号,导致赋值内容变成单元素元组,而非预期的字段值。例如project.customer = customer,实际是将(customer,)这个元组赋值给字段,而不是Customer实例本身,违反了外键字段必须关联对应模型实例的要求。

修复步骤

  1. 修正字段赋值代码:去掉赋值语句末尾的逗号,确保直接赋值字段值而非元组:
# 替换原错误的赋值代码
project.project_name = project_name
project.project_scope = project_scope
project.customer = customer
project.project_type = type
project.estimated_finish_date = end_date
project.update_date = now
project.update_count = update_count
project.start_date = start_date
project.estimated_cost = project_budget
project.patent = patent
project.market = market
  1. 修正上下文更新代码:原代码中context += {"success","Başarıyla Güncellendi"}是错误的集合操作,应改为字典赋值方式:
# 替换原错误的上下文更新代码
context["success"] = "Başarıyla Güncellendi"

补充说明

  • 逗号在Python中用于创建元组,即使只有一个元素,末尾加逗号也会被识别为元组类型,这是常见的语法陷阱。
  • 修复后重新运行代码,即可正常完成Project实例的更新操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 03:59:52