Доступный для записи сериализатор вложенных моделей требует ручного разбора request.data
После долгих усилий я, наконец, получил сериализатор вложенных моделей Django с возможностью записи, работающий с использованием drf-writable-nested, для вложенных данных с обратной связью внешнего ключа. В настоящее время это требует от меня копирования и ручного разбора запроса.данные для всех полей, чтобы создать новый объект перед отправкой его в мой сериализатор. Если я этого не сделаю, я получу следующее (распечатки serializer.data и ошибки соответственно):
serializer.data {
"leerling": "2",
"omschrijving": "Basispakket",
"betaaltermijn": "14 dagen",
"is_credit": false,
"tegoeden": [
{
"[aantal]": "1",
"[prijs]": "450",
"[btw_tarief]": "9%"
},
{
"[aantal]": "1",
"[prijs]": "45",
"[btw_tarief]": "21%"
}
]
}
serializer.errors {
"tegoeden": [
{
"btw_tarief": [
"This field is required."
]
},
{
"btw_tarief": [
"This field is required."
]
}
]
}
Некоторые поля не выдают ошибку, потому что они не обязательны / имеют значение по умолчанию. Я попробовал вручную объявить JSON без скобок в качестве входных данных для сериализатора, и тогда это сработало. Таким образом, проблема вызвана скобками.
Сейчас он работает, обрабатывая запрос вручную.data Querydict, но он кажется взломанным и, вероятно, не так, как это должно быть сделано. Я, вероятно, что-то упускаю.