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

Django上传数据提示超出DATA_UPLOAD_MAX_NUMBER_FIELDS限制如何解决?

报错含义

The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS.是Django内置的安全限制触发提示:为了防范恶意构造的大量字段请求攻击服务器,Django默认限制单次请求最多可接收1000个表单字段(不同版本默认值可能存在差异)。当前你提交的单个商品仅独立图片字段就有9个,叠加其他普通字段,后续如果商品字段增加、或者进行批量上传操作就很容易超出该上限。

解决方案

方案1:调整Django配置(快速临时解决)

在Django项目的settings.py文件中添加或修改对应配置项,调高最大字段上限,示例:

DATA_UPLOAD_MAX_NUMBER_FIELDS = 2000

注意:该方案仅放宽了限制阈值,未从根源优化请求结构,生产环境不建议将值设置过高,避免恶意攻击风险。

方案2:优化请求传输结构(生产环境推荐)

当前你将每个图片作为独立表单字段提交,字段数量会随图片数量线性增长,可拆分普通字段与文件字段传输,在不调高上限的前提下解决问题:
requests的post方法支持单独传入data参数存普通表单字段、files参数存文件类字段,两者会自动合并为form-data格式请求,调整后的脚本参考:

import json
import requests

if __name__ == '__main__':
    # 优化json读取逻辑,自动关闭文件句柄
    with open('data/data.json', 'r', encoding='utf-8') as json_file:
        products = json.load(json_file).get("products")
    for index, product in enumerate(products):
        print(f"Creating {index + 1}/{len(products)} - {product.get('name')}")
        data = {}
        files = {}
        for key, value in product.items():
            if key.startswith("image"):
                files[key] = open(value, 'rb')
            else:
                if key == 'variants':
                    data[key] = json.dumps(value)
                else:
                    data[key] = value
        res = requests.post(
            'http://localhost:8000/api/v1/product/create',
            data=data,
            files=files,
            cookies={
                "access_token": "",
                "csrftoken": ""
            })
        # 主动关闭打开的图片文件句柄,避免资源泄漏
        for f in files.values():
            f.close()
        if res.status_code < 400:
            print(f"{product['name']} created successfully")
        else:
            print(f"{product['name']} failed to create")
            # 调试阶段可打开下方注释查看详细报错信息
            # print(res.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:09:03