Добрый день.
Инстресует возможность реализации дополнительной обработки данных в сериализаторе/вьюхе.
Есть 2 модели:
Catalog:
Описание (TextField).
Item:
Каталог (Foreign key - Catalog);
Название (Charfield);
Цена (PositiveIntegerField).
Условие такого, что прилетает POST запрос с несколькими объектами Item для их валидации и создания. Но условие в том, что foreign key не указывается в каждом объекте, а лишь один раз с запросом. Если же foreign key вообще не указан, то тогда создаются объекты Item с foreign key на последний элемент Catalog.
Пример
(POST):
[
{
"catalog": 1
},
{
"name": "item 1",
"price": 999
},
{
"name": "item 2",
"price": 1999
}
]
Соответственно, создаётся 2 объекта Item, с указанием foreign key на Catalog с pk равным 1.
Как я предполагаю, стоит во вьюхе проверять поступивший json на наличие в нем ключевого слова "catalog".
Если слово есть:
Делать запрос в бд, запрашивая элемент Catalog с указанным pk. Далее передать данные сериализатору.
Иначе:
Взять из бд последний элемент Catalog, передать данные сериализатору.
В самом сериализаторе проверять соответственно данные, создавать объекты.
Как лучше реализовать данную возможность (какую вьюху использовать, какой сериализатор, какие методы стоит переопределить)?
Заранее благодарю за помощь.