Как преобразовать raw JSON с полем вложенного массива в теле почтальона в данные формы? - PullRequest
0 голосов
/ 19 февраля 2020

Вчера я спрашивал об этом вопросе , но не получил ответа, может быть, потому что он был слишком конкретным c, относящимся к Django REST Framework. Я чувствую, что это просто проблема пары ключ-значение в данных формы, которые я использую для публикации. Поэтому я собираюсь повторно задать вопрос с упрощенным содержанием.
Каков эквивалент формата данных формы для этого необработанного JSON:

"markets": [
        {
            "market": 1,
            "name": "White Stone",
            "slabs": [
                1,
                2
            ],
            "thicknesses": [
                1,
                2,
                3
            ],
            "finish_types": [
                1
            ]
        },
        {
            "market": 2,
            "name": "White Marble",
            "slabs": [
                1
            ],
            "thicknesses": [
                1
            ],
            "finish_types": [
                1,
                3,
                6
            ]
        }
]

Я хочу создать новый Product экземпляр с markets полем. markets является массивом и имеет свои собственные атрибуты. Некоторые из них также являются массивами. Я не могу отправить более 1 slabs, thicknesses и finish_types каждый в течение одного markets. slabs, thicknesses и finish_types - внешние ключи. enter image description here Когда я попытался создать пары ключ-значение, как на рисунке выше, единственными сохраненными элементами являются последние введенные.
Вот созданные markets:

"markets": [
            {
                "id": 65,
                "market": 1,
                "name": "White Stone",
                "slabs": [
                    2
                ],
                "thicknesses": [
                    3
                ],
                "finish_types": [
                    1
                ]
            }
]

enter image description here И когда я попробовал другой формат клавиш, как этот, нет slabs и thicknesses будут сохранены:

"markets": [
            {
                "id": 66,
                "market": 1,
                "name": "White Stone",
                "slabs": [],
                "thicknesses": [],
                "finish_types": [
                    1
                ]
            }
]

1 Ответ

1 голос
/ 19 февраля 2020

Согласно этому ответу.

Как насчет того, чтобы попробовать этот формат:

Key                       Value

markets[0][market]         1
markets[0][name]           white stone
markets[0][slabs][]        2
markets[0][thicknesses][]  3
markets[0][finish_types][] 1

И, возможно, этот Django поток может помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...