02. Django REST Framework - простой Serializer, (де)сериалилируем объекты, сохраняем, обновляем.

  Рет қаралды 1,372

Кибер Весло

Кибер Весло

3 жыл бұрын

Работа с простым serializer Django REST Framework - сериализация/десериализация объектов, сохранение в базу данных, обновление из базы данных. Исходный код проекта:github.com/dvk-net/django-pho.... Приложение является продолжением серии учебных проектов. - Создание консольного приложения "Телефонная книга" - • Как создать телефонную... - Кроссплатформенное Kivy-приложение - Телефонная книга • Кроссплатформенное Kiv...

Пікірлер: 9
@dodokwak
@dodokwak 2 жыл бұрын
Использую моделвьюсет,куда приходят данные для поля Image в моей модели (это поле опциональное). В зависимости от действий пользователя там может быть изображение, а может быть строка с url . Однако мой валидатор заточен на валидацию картинки. При попытке выпилить из запроса строку url, я получаю сообщение о том,что словарь запроса неизменяем. Я решила задачу "нечестным" хаком, изменив аттрибут в запросе _mutable на True у QueryDict. После манипуляций - ставлю этот аттрибут в исходное неизменяемое значение. Прочитала, что можно в get_serializer method сделать копию, которая однако будет deep copy, т.е. в RAM будеть болтаться довольно большой объект. Вопрос: чем мне грозит моё решение БЕЗ создания deep copy QueryDict? Спасибо зарание.
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Трудно так что-то сказать по описанию...
@dodokwak
@dodokwak 2 жыл бұрын
@@cyber-paddle спс. боюсь ЮТ бота,который очень многие комменты выпиливает по ему понятному алгоритму, даже без ссылок, но попробую написать ссылку.
@dodokwak
@dodokwak 2 жыл бұрын
viewsets.ModelViewSet для обработки данных запроса. Предположим этот viewset принимает данные об объекте модели Post с аттрибутом img (optional). В зависимости от действий юзера реквеста может 1. содержать картинку 2. не иметь image вообще (null=True,blank=True) 3.(в случае редактирования) содержать новую картинку на замену старой 4. или иметь строку (path), типа url как ссылку на условное хранилище (aws s3) Логика обработки такая: если в данных есть картинка, то дальше нужно передать её на validation в serializer. Если данные не содержат image или содержат только url на уже имеющ-ся картинку, то мне нужно каким-то образом выпилиль эти данные из request.data, иначе сериализатор, настроенный на валидацию img, начинает ругаться. Однако тут поджидает засада в виде This QueryDict instance is immutable. Я решила задачу "нечестным" хаком, изменив аттрибут setattr (реквест дата, '_mutable', True) у QueryDict. Однако сердце моё неспокойно.Прочитала где-то совет залезть в get_serializer method сделать копию QueryDict провести нужный манипуляциии скормить его ser-ry. Однако копия self реквест дата copy() в нём будет означать создание deep copy,т.е. у меня в RAM будеть болтаться довольно большой объект. Вопрос: чем мне грозит моё решение БЕЗ создания deep copy QueryDict-a? Или всё-таки переделать таки с глубокой копией?
@dimax6792
@dimax6792 3 жыл бұрын
Привет, подскажи пожалуйста, почему возникает ошибка NotImplementedError: `create()` must be implemented. Очень вовремя вышел твой урок! Буду рад помощи
@cyber-paddle
@cyber-paddle 3 жыл бұрын
Ну собственго пишет, что нет метода create - надо его определить
@smokibits4365
@smokibits4365 2 жыл бұрын
Ponravilas prostota oyasneniya, ne zabrasivaite kanal
@cyber-paddle
@cyber-paddle 2 жыл бұрын
пожалуйста! Заходите еще!
@cyber-paddle
@cyber-paddle 2 жыл бұрын
не забрасываю... просто сейчас вот это вот все...
Опасность фирменной зарядки Apple
00:57
SuperCrastan
Рет қаралды 10 МЛН
Эффект Карбонаро и нестандартная коробка
01:00
История одного вокалиста
Рет қаралды 10 МЛН
1105. Filling Bookcase Shelves - Day 31/31 Leetcode July Challenge
33:58
Programming Live with Larry
Рет қаралды 128
Deploy a Django web app to Python Anywhere in 5 Mins [FREE]
9:26
05. Django REST Framework - ModelViewSet.
11:36
Кибер Весло
Рет қаралды 717
How to use lookup_field for custom view and url's logic | DRF
6:48
Deploying our Django project to hosting from zero in 25 minutes
24:30
Кибер Весло
Рет қаралды 17 М.