Django Количество параметров GET/POST превысило настройки.ПОЛЯ DATA_UPLOAD_MAX_NUMBER_FIELDS. даже несмотря на то, что мои поля невелики

#python #django #django-rest-framework #python-requests #multipartform-data

Вопрос:

Я создал скрипт для программной загрузки данных на свой сервер, но django продолжает выдавать The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS. мне ошибку, вот данные, которые я отправляю

 {'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"}]'}
 

И вот сценарий, который я создал

 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)

 

Я не знаю, что означает эта ошибка и как я могу ее устранить

Ответ №1:

Согласно документам, вы можете установить DATA_UPLOAD_MAX_NUMBER_FIELDS значение None в своем settings.py файл, чтобы избежать проверки на стороне Django.