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

Django表单计算结果写入Model报错:sq_price参数重复赋值

解决Django中create方法参数重复的问题

错误原因很明确:你调用ProjectDetail.objects.create()时,同时通过显式参数sq_price = sq_price和展开**detail_clean传递了两次sq_price参数。因为ProjectDetailForm的字段包含sq_price,所以detail_clean字典中已经存在这个键,和你手动传入的参数冲突,导致Django抛出参数重复的错误。

修复方案

在创建ProjectDetail对象前,从detail_clean中移除sq_price键即可避免冲突:

修改代码中创建ProjectDetail的部分:

# 移除detail_clean中的sq_price,防止参数重复
detail_clean.pop('sq_price', None)

ProjectDetail.objects.create(
    project = p,
    sq_price = sq_price,
    **detail_clean
)

补充说明

  • pop('sq_price', None)里的None是为了避免detail_clean中没有sq_price键时抛出KeyError,提升代码健壮性。
  • 如果你不想修改原detail_clean字典,也可以生成一个排除sq_price的新字典再展开:
    filtered_detail = {k: v for k, v in detail_clean.items() if k != 'sq_price'}
    ProjectDetail.objects.create(
        project = p,
        sq_price = sq_price,
        **filtered_detail
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:40:35