Django The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS. even though my fields are little

Viewed 348

I created a script to programmatically upload data to my backend, but django keeps throwing the The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS. error at me, here is the data I am sending

{'store': 'dang-1',
 'name': 'Nike Air Max Plus',
 'description': 'Let your attitude have the edge in your Nike Air Max Plus, a Tuned Air experience that offers premium stability and unbelievable cushioning.',
 'brand': 'Nike',
 'model': 'Air Max Plus',
 'gender': 'U',
 'category': 'shoes',
 'image_v0_1': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (3).jpg'>,
 'image_v0_2': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (3).png'>,
 'image_v0_3': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (3).jpg'>,
 'image_v1_1': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (1).jpg'>,
 'image_v1_2': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (1).png'>,
 'image_v1_3': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (1).jpg'>,
 'image_v2_1': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (2).jpg'>,
 'image_v2_2': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (2).png'>,
 'image_v2_3': <_io.BufferedReader name='data/images/shoes/Nike Air Max Plus/image (2).jpg'>,
 'variants': '[{"is_default": true, "price": 65000, "quantity": 10, "shoe_size": 45, "color": "black"}, {"is_default": false, "price": 65000, "quantity": 10, "shoe_size": 45, "color": "multi-colored"}, {"is_default": true, "price": 65000, "quantity": 10, "shoe_size": 45, "color": "green"}]'}

And here is the script I created

import json

import requests


if __name__ == '__main__':
    json_file = open('data/data.json')
    products = json.load(json_file).get("products")
    for index, product in enumerate(products):
        print(f"Creating {index + 1}/{len(products)} - {product.get('name')}")
        data = {}
        for key, value in product.items():
            if key.startswith("image"):
                data[key] = open(value, 'rb')
            else:
                if key == 'variants':
                    data[key] = json.dumps(value)
                else:
                    data[key] = value
        print(data)
        res = requests.post(
            'http://localhost:8000/api/v1/product/create', data, cookies={
                "access_token": "",
                "csrftoken": ""
            })
        if res.status_code < 400:
            print(f"${product['name']} created successfully")
        else:
            print(f"${product['name']} failed to create")
            # print(res.text)

I don't know what it means by this error, or how I can resolve it

1 Answers

Per the docs, you can set DATA_UPLOAD_MAX_NUMBER_FIELDS to None in your settings.py file to avoid the check on the Django side.

Related