Django save request.POST to JSONField выбирает последний элемент из списка вместо сохранения списка

У меня есть представление, которое получает пост-запрос от client.post()

        data = {
            "token": create_hash(customer_name),
            "images": [image_1, image_2],
            "name": customer_name,
            "email": "test@email.com",
            "phone": "0612345678",
            "product": "product-sku0",
            "font_family": "Helvetica",
            "font_size": 12,
            "colors_used": (
                "#AAAAAA|White D",
                "#FFFFFF|Black C"
            )
        }

Я пытаюсь сохранить пост-запрос целиком в model.JSONfield().

Пара ключ-значение почтового запроса выглядит следующим образом:

'colors_used': ['#AAAAAA|White D', '#FFFFFF|Black C']

Когда я сохраняю и позже извлекаю значение, оно выглядит следующим образом:

'colors_used': '#FFFFFF|Black C'

Вместо сохранения вложенного списка в поле JSON он сохранил только последнее значение.

Я использую SQLite.

Оказывается, это просто поведение по умолчанию при преобразовании набора запросов в json-строку. На уровне ключей вы можете использовать getlist() для получения всех значений многозначного ключа.

В итоге я поместил всю вложенную структуру данных в одну json-строку с помощью json.dumps(data) и просто отправил ее вместе с запросом.

Вернуться на верх