#4. Введение в сериализацию. Класс Serializer | Уроки по Django REST Framework

  Рет қаралды 75,388

selfedu

selfedu

2 жыл бұрын

Практический курс по Django: stepik.org/a/183363
Делаем ручную сериализацию объектов модели с помощью базового класса Serializer. Рассматриваются классы JSONRenderer, JSONParser, метод is_valid(), коллекция validated_data.
Телеграм-канал: t.me/django_selfedu
Инфо-сайт: proproprogs.ru/django
drfsite-4.zip: github.com/selfedu-rus/rest-f...
Сериализаторы: www.django-rest-framework.org...

Пікірлер: 125
@Krasnolesye
@Krasnolesye 3 ай бұрын
Благодаря вашим урокам/труду, как работает Django становится яснее. Да и подача материала - без воды и э'каний ...Пазл по чуть-чуть складывается. Спасибо БОЛЬШОЕ!!!
@user-dk3sx6xk2u
@user-dk3sx6xk2u 2 жыл бұрын
Находка, не канал! Крайне полезная информация на доступном языке! Спасибо огромное , Сергей!
@dudmax11
@dudmax11 3 ай бұрын
👍
@ural-site
@ural-site 2 жыл бұрын
Сергей, Вы просто мастер объяснения!!! Просто разжевали так что даже не захочешь понять, все равно поймешь! Супер!
@user-cd1zv1bd7b
@user-cd1zv1bd7b 2 жыл бұрын
Повторяю DRF по этому курсу, понимаю, что этот материал куда качественнее, чем тот, по которому я учился в Практикуме когда-то) Я бы даже задонатил с удовольствием. Такой труд должен оплачиваться
@ne_zabyc_dadac
@ne_zabyc_dadac 2 жыл бұрын
Не устану писать слова благодарности Сергею. Весь канал это кладезь знаний, готовых для быстрого усвоения
@my_way_to_heaven
@my_way_to_heaven 2 жыл бұрын
Сергей, спасибо за то, именно, что вы показали принцип работы сериализатора! Это очень важно. Теперь я разобрался для чего нужны сериализаторы и что происходит под капотом (поверхностно). Вы показали и рассказали на пальцах. Спасибо! Это потрясающий подход к объяснению. Объяснять КАК правильно делать и ПОЧЕМУ именно так и ЧТО КАК РАБОТАЕТ
@eugene_mountainland
@eugene_mountainland Жыл бұрын
Видео приходится пересматривать, чтобы все улеглось хорошо, но уроки крутые)
@ahil7800
@ahil7800 2 жыл бұрын
Это просто бомба. Очень подробное объяснение. Спасибо автору за его нелёгкий труд. Мало просмотров, но это просто направление такое. Учиться кодить это не котиков смотреть. Желающих намного меньше. Тем больше будут наши зарплаты))
@veaceslavlefter
@veaceslavlefter 2 жыл бұрын
Чувак для тебя уже есть отдельное место в раю. Я почти уже год учу django/drf и на английском и на русском и всё мимо, всё поверхностно понимаю, толком ничего не могу делать. Уже хотел бросить, но нашёл твои видосы и всё стало понятно что это за еб*ный drf и с чем его едят. Спасибо.
@fahrenheit1863
@fahrenheit1863 Жыл бұрын
Лучшая подача материала, что я видел. Думаю все магия в подробных примерах кода.
@donfedor007
@donfedor007 Жыл бұрын
Отличная подача материала. Вроде понимаешь как работает, но когда посмотришь Ваш урок, понимаешь как-то по новому! Спасибо!
@andrewharazdowskyy4771
@andrewharazdowskyy4771 2 жыл бұрын
Уважаемый Сергей! Мне, новичку, при первом просмотре было не просто - много новых методов, атрибутов, классов... но при построчном детальном разбирательстве после четвертого раза...) вопросов не осталось. Особая благодарность Вам за последовательность изложения и Точность формулировок - это крайне важно для начинающих. Спасибо!
@SemyonKalyakulin
@SemyonKalyakulin 2 жыл бұрын
присоединяюсь, новичку адски сложно
@andredru4278
@andredru4278 9 ай бұрын
Спасибо. Туман над сериализаторами рассеялся.
@vikvik8241
@vikvik8241 2 жыл бұрын
Огромное спасибо за труд!
@artur.tokranov
@artur.tokranov 2 жыл бұрын
Я и django здесь изучал. Спасибо, топ контент!
@MrGhast
@MrGhast Жыл бұрын
Спасибо за отличные уроки!
@NickTyupin
@NickTyupin 2 жыл бұрын
Спасибо, как всегда все на высшем уровне объяснено!😎
@hovosimonyan799
@hovosimonyan799 2 жыл бұрын
Спасибо огромное.
@unaibekovbakhyt6517
@unaibekovbakhyt6517 2 жыл бұрын
Благодарю. Очень актуально
@asadulloha
@asadulloha Жыл бұрын
Вы делаете очень полезные уроки, большое спасибо
@user-vh8pu5sn4e
@user-vh8pu5sn4e Жыл бұрын
Спасибо, лучшая подача материала!
@eugenebybin6403
@eugenebybin6403 Жыл бұрын
Супер объяснение, полностью что происходит под капотом
@zvd1660
@zvd1660 Жыл бұрын
Очень полезный, подробный контент. Большое спасибо.
@saintshell3190
@saintshell3190 Жыл бұрын
Сергей, спасибо за Ваши уроки! За два дня осилил 2 урока... Слышны скрипы из черепа чему я очень рад! :))
@BorisenkoV89
@BorisenkoV89 2 жыл бұрын
Спасибо, очень доходчиво объясняете.
@user-te1de5kl1q
@user-te1de5kl1q 11 ай бұрын
Спасибо большое за этот материал. Очень качественно и доступно для понимания.
@user-hu4po2gf8n
@user-hu4po2gf8n 10 ай бұрын
Отличные уроки, приятно смотреть
@dmitriivanov7010
@dmitriivanov7010 Жыл бұрын
Сергей, вы лучший препод. Спасибо вам огромадное)
@threelettersfiveletters
@threelettersfiveletters Жыл бұрын
Все время хихикал над вимен, но большое спасибо за видеоурок!
@selfedu_rus
@selfedu_rus Жыл бұрын
вимен - это мн. число, вумен - единственное ))
@user-vg7uq9pe5u
@user-vg7uq9pe5u 11 күн бұрын
Великолепно
@deadstrike
@deadstrike Жыл бұрын
Отличное объяснение! Удачи каналу!
@asadulloha
@asadulloha Жыл бұрын
Да будет доволен тобой Аллах
@uladzislawchyrets
@uladzislawchyrets 2 жыл бұрын
Спасибо за урок
@a9583137
@a9583137 Ай бұрын
Круто!
@user-buser_eto_ja
@user-buser_eto_ja 2 жыл бұрын
Низкий поклон !
@vladimirfesenko12345
@vladimirfesenko12345 Жыл бұрын
Спасибо огромное за очень интересные видеокурсы. Вы - прекрасный специалист и преподаватель. Я новичек и из ваших курсов очень многое уже узнал. В DRF хотелось бы ещё подробно затронуть тему фильтрации при помощи django-filter и тему вложенных сериализаторов. Думаю, что это будет очень полезно для всех. И ещё очень хотелось бы увидеть на канале видео про тестирование кода на python, а так же написание тестов django и DRF. Но это лишь пожелания. Спасибо за то, что Вы делаете. Не многие могут показать и рассказать так интересно и понятно.
@iam_foreman
@iam_foreman Жыл бұрын
Сергей, спасибо большое!
@suhanoves
@suhanoves 2 жыл бұрын
Роль сериализатора - конвертировать сложные объекты, типа моделей, в примитивы Python, а рендером/парсингом из/в простых структур в/из формат JSON в DRF занимаются рендеры и парсеры соответственно
@lukabelial9200
@lukabelial9200 2 жыл бұрын
спасибо за бесплатные знания лайк
@standvik1159
@standvik1159 2 жыл бұрын
чувствую себя идиотом после того, как читаю восхищения людей о том, что они все поняли, в то время как я, либо нифига не понял, либо понял 20% от сказанного
@rgbrs4149
@rgbrs4149 2 жыл бұрын
Как раз в тему видео) щас использую сериализаторы.
@ccjx_space
@ccjx_space Жыл бұрын
Очень классно!
@jackieuchiha7838
@jackieuchiha7838 2 жыл бұрын
ты просто гений!
@rostislavmalyshev1775
@rostislavmalyshev1775 2 жыл бұрын
Замечательный урок! Вообще нормальных видео по DRF на Ютубе днем с огнем не найдешь. Я искал очень долго и ни чего подобно этому (где все подробно разъясняется с самых основ) не нашел :(
@romanryaboshtan9270
@romanryaboshtan9270 7 ай бұрын
круто, спасибо
@dina-kozulka
@dina-kozulka 2 жыл бұрын
ОООчень круто!
@ahil7800
@ahil7800 2 жыл бұрын
Чем больше я смотрю исходники фреймворков, тем больше убеждаюсь, что те кто их писал выразили своё отношение к принципам SOLID так же как капрал из х/ф "Сибирский цирюльник". "Срал я на вашего моцарта". Классы и методы просто огромны, отвечают сразу за кучу вещей. Недавно смотрел одного программиста, который говорил что если ваш метод называется как-то типа drive_or_stop, ну то есть содержит or или and в названии, то у вас скорее всего нарушен принцип single responsibility. Посоветовал ему выучить джанго, вот удивится то. Уж там то методов типа get_or_create, get_or_404 и др. прям выше крыши.
@johk2293
@johk2293 Жыл бұрын
Жить вам от этого хуже стало? :) Всю жизнь следовать навязанным принципам слепо тоже не стоит. Если проигнорировали их, значит была на то причина.
@denismaleev3848
@denismaleev3848 Жыл бұрын
а вас не смущает что это оптимизации уровня базы данных где можно или втсавиь или обновить данные за одну операцию обращения к БД?)
@l_leo4
@l_leo4 2 жыл бұрын
Я только начал делать проэкт, кэп мказать изучить фреймворк(я ещё школьник, даже не студент), на сайтах было очень не понятно, потому что расчитывалось базу знаний фрейма, а тут прям с нуля, спасибо
@slaviksemen4919
@slaviksemen4919 2 жыл бұрын
Спасибо. Круто
@asadulloha
@asadulloha Жыл бұрын
Пусть Аллах благословит ваш труд
@dzhegutin9876
@dzhegutin9876 Жыл бұрын
И не только Аллах, но и Будда!
@jin4644
@jin4644 5 ай бұрын
пушка
@bernardsoul8936
@bernardsoul8936 3 ай бұрын
Если у кого ошибка с строкой serializers.IntegerField(), на более новых версиях следует использовать serializers.PrimaryKeyRelatedField(read_only=True)
@jamjam3337
@jamjam3337 7 ай бұрын
👏👍
@firstandlast4435
@firstandlast4435 5 ай бұрын
такой старенький по меркам программирования курс, а на гитхабе одна звезда (моя=))
@Dennis_Ritchie
@Dennis_Ritchie 17 күн бұрын
@selfedu Спасибо за материал, не планируете ли вы в будущем выпустить курс по FastAPI ? По нему мало информации на просторах.
@user-xv7sh6lp7o
@user-xv7sh6lp7o 2 жыл бұрын
👍
@Daloshka
@Daloshka 11 ай бұрын
Чёёё, Балакирев, я тоже с такой фамилией))
@mrduckvc
@mrduckvc Жыл бұрын
Великолепно объяснил, предельно чётко и ясно. Есть только 1 вопрос, почему же мы стали прописывать все поля из модели Women в сериалайзере WomenSerializer, если можно было сделать как в одном из приводящих уроках и прописать в WomenSerializer Meta model=Women Или вы тем самым хотели показать возможности сериализатора?
@dasshrs
@dasshrs 2 жыл бұрын
Отлично. Но в конце, тем кто пишет код для проектов своих не забудьте извлечь данные из validated_data для создания обьекта.
@squabble3332
@squabble3332 Жыл бұрын
надеюсь жахну весь плейлист за сегодня, перелезаю с nodeJs, пока все нравится) Python крутой все-таки
@dzhegutin9876
@dzhegutin9876 Жыл бұрын
А работаете где то ?
@Anonim-im6ln
@Anonim-im6ln Жыл бұрын
👍👍👍
@bulik1384
@bulik1384 Жыл бұрын
Вопрос почему у автора в сериализаторе строка Категория называется cat_id а в моделях просто cat? Ведь имена должны совпадать и при их несовпадении, выпадает ошибка.. Второй вопрос, сделал всё как на видео(только имена Категории одинаковые) и получаю следующую ошибку:аргумент int() должен быть строкой, байтоподобным объектом или числом, а не "Категорией". Она связана как раз со строкой cat.. если удаляю эту строку из сериализатора, то всё ок. Почему так выходит? Спасибо за ответ
@ArtyMorty_
@ArtyMorty_ Жыл бұрын
в сериализаторе нужно поле назвать cat_id тогда будут браться id, а иначе приходят названия категорий
@timurdjumaniyazov9392
@timurdjumaniyazov9392 6 ай бұрын
Доброго времени суток! Очень доступно объясняете и за это Вам большое спасибо! Как Вам идея на счет создания уроков с использованием Django и JavaScript?
@user-cf2lc2rq4v
@user-cf2lc2rq4v Жыл бұрын
А с параметром readonly сможем ли мы пропатчить поле time_update?
@mancharie1893
@mancharie1893 Жыл бұрын
🤗
@tagabenz9808
@tagabenz9808 Жыл бұрын
Для чего нужно все декодировать в байтовые строки? чем просто функции json() c прошлого занятия не подходят? когда делали все это без сериализаторов?
@dzhegutin9876
@dzhegutin9876 Жыл бұрын
Сергей, а вы по питону мидл, сеньор или тимлид?
@SemyonKalyakulin
@SemyonKalyakulin Жыл бұрын
Лайк! Один момент только остался непонятным. 11:40 функция decode(). Подскажите, пожалуйста, в чем смысл отправлять уже готовый словарь с данными (после JSONParser().parse()) в сериализатор? Он как-то по-особенному сортирует данные в этом словаре? Для чего это нужно?
@user-gd4yi6sh5k
@user-gd4yi6sh5k 2 жыл бұрын
С начало видео забеспокоил один вопрос, а в чем смысл преобразовывать в JSON через танцы с бубнами нашу модель, если уже в прошлом видео мы при GET запросах в POSTman получали тот же JSON, не используя серилизатор конечно возможно я узнаю нужду в этом всем после, просто приятней когда изначально понятен замысел Если кто то обладает этой информацией объясните под эти коментом, возможно в будущем кому то пригодиться Ps Спасибо за курс в целом годно, вообще информации именно по rest мало
@drvification
@drvification Жыл бұрын
Если название полей будет отличаться, например передаём не title, а title[value] , будут записываться данные?
@flayers1646
@flayers1646 2 жыл бұрын
Как в запросе передать картинку?
@uvins
@uvins Жыл бұрын
8:30, Когда я пишу encode() вылазит ошибка. AssertionError: Class PetSerializer missing "Meta.model" attribute, как её решить?
@uvins
@uvins Жыл бұрын
!!!НАШЁЛ ОТВЕТ!!! в class WomenSerializer, я указал в круглых скобках (serializers.ModelSerializer), а надо (serializers.Serializer)
@kazakovsergey58
@kazakovsergey58 2 жыл бұрын
Спасибо !!! И вопрос . А что с CSRF токеном, он не используется в API ?
@user-kt2pf5bf5m
@user-kt2pf5bf5m 2 жыл бұрын
он используется в формах
@selfedu_rus
@selfedu_rus 2 жыл бұрын
обычно защита реализуется через токены, об этом дальше будет
@asadulloha
@asadulloha Жыл бұрын
MashaAllah
@Ryzhenko_Bohdan
@Ryzhenko_Bohdan Жыл бұрын
Большое спасибо за видео! Я начинающий и только погружаюсь в данную тему, Сергей, подскажите, как можно при помощи Django REST Fr. выполнить xml запрос, с данными с формы на странице, на другой сервер и вывести результат пользователю ?
@selfedu_rus
@selfedu_rus Жыл бұрын
В двух словах не ответишь. Начало почитайте здесь www.django-rest-framework.org/api-guide/parsers/#xml а подробнее в сообщество телеграм-канала по Django. Успехов!
@Ryzhenko_Bohdan
@Ryzhenko_Bohdan Жыл бұрын
@@selfedu_rus Спасибо за столь оперативный ответ! :)
@vadimkolbik
@vadimkolbik Жыл бұрын
Я так понимаю, пользователь будет категорию выбирать из предложенных, так как если он выберет категорию, которой нет - это исключение никак не обрабатывается
@user-bk2kw2xi4q
@user-bk2kw2xi4q 2 жыл бұрын
Добрый день! Спасибо Вам за Ваши труды. Сейчас как раз изучаю DRF. Подскажите, пожалуйста, как сделать так, чтобы вылазила подсказка импортировать библиотеку. Сейчас все вручную прописываю
@selfedu_rus
@selfedu_rus 2 жыл бұрын
вроде просто курсор мыши наводим и появляется подсказка
@user-bk2kw2xi4q
@user-bk2kw2xi4q 2 жыл бұрын
@@selfedu_rusда, подсказка вылазит, но в ней нет значения import. И не подкидывает само библиотеку, из которой можно импортировать
@ogurchik5223
@ogurchik5223 Жыл бұрын
@@user-bk2kw2xi4q Понимаю, что вопрос месячной давности, но вдруг буду полезен... В общем, у меня также . Нужно просто нажать на ошибку правой кнопкой мыши и в поле "Show Context Actions"(самое первое) выбрать первый пункт - автоматически импортирует что надо и откуда надо
@user-by7sy7nu4t
@user-by7sy7nu4t Жыл бұрын
alt + enter
@user-bi4vs4rb1n
@user-bi4vs4rb1n Жыл бұрын
Мозг скрипит, нейронные связи растут, а видео отличное!
@slowin0_0
@slowin0_0 Жыл бұрын
А как поле фото сделать, выдает ошибку "Загруженный файл не является корректным файлом."
@yar8519
@yar8519 Жыл бұрын
кюйт :3
@sashka671
@sashka671 2 жыл бұрын
Запускаю оболочку python manage.py shell Python 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) и получаю TypeError: MenModel() takes no arguments. Подскажите решение проблемы
@maximkarabtsov3091
@maximkarabtsov3091 Жыл бұрын
Привет. Решил проблему? Как?
@user-tb8io7hh4f
@user-tb8io7hh4f Жыл бұрын
У вас __init__ стоит когда инициализируете класс?
@user-nq7kp6hn6b
@user-nq7kp6hn6b 10 ай бұрын
Народ как вы это все понимаете...я 3 раза пересмотрел, просто темный лес
@user-ow4km5zs5r
@user-ow4km5zs5r 2 жыл бұрын
Возможно че то обновилось. Теперь при попытке вызвать функцию encode() вылазит ошибка Class WomenSerializer missing "Meta" attribute. Код я перепроверил, вроде бы все так как у вас
@johk2293
@johk2293 Жыл бұрын
Мб забыли поменять наследование с ModelSerializer на простой Serializer
@user-ow4km5zs5r
@user-ow4km5zs5r Жыл бұрын
@@johk2293 я уже не помню точно, но по моему так и было)
@uvins
@uvins Жыл бұрын
Та же ошибка, вы как нибудь решили её?
@user-gh6bn1lp4m
@user-gh6bn1lp4m Жыл бұрын
Сергей, спасибо! Всё супер! У меня только один вопрос) Почему вы используете Postman вместо того, чтобы POST запросы отправлять из интерфейса, который вам предоставляет DRF по ссылки /api/v1/womenlist?)) Там же внизу есть окошко, через которое можно POST запросы отправлять)
@selfedu_rus
@selfedu_rus Жыл бұрын
да, можно и так, тут в общем то без разницы и, кроме того, Postman в полной мере имитирует стороннее устройство, т.е. в заголовках запроса нигде не фигурирует браузер
@danilbanan406
@danilbanan406 Жыл бұрын
откуда берёется переменная cat_id если в модели у нас cat
@danilbanan406
@danilbanan406 Жыл бұрын
(cat_id в серилиалайзере)
@selfedu_rus
@selfedu_rus Жыл бұрын
автоматически добавляется суффикс _id
@antonkuzmich4624
@antonkuzmich4624 Жыл бұрын
6:48 AssertionError: Class WomenSerializer missing "Meta" attribute
@antonkuzmich4624
@antonkuzmich4624 Жыл бұрын
class WomenSerializer(serializers.ModelSerializer): class Meta: model = Women fields = ('title', 'content')
@double.voice_film
@double.voice_film 2 жыл бұрын
7:13 (AssertionError: Class WomenSerializer missing "Meta" attribute) При запуске выдает ошибку, что в классе WomenSerializer отсутствует Мета класс. Почему? У кого проблемы с этом?
@Insolonse
@Insolonse 2 жыл бұрын
у меня было изза того что сериализатор был унаследован неправильно
@CL0CK
@CL0CK 2 жыл бұрын
Тоже столкнулся с этой проблемой. Думаю причина была в том, что не правильно написал from women.serializers import encode
@uvins
@uvins Жыл бұрын
Та-же ошибка, решили как нибудь?
@uvins
@uvins Жыл бұрын
@@CL0CK Всё правильно импортировано, но всё равно ошибка
@stasmarussin4511
@stasmarussin4511 11 ай бұрын
@@CL0CK было такое что написал int вместо init, проверь
@user-iu1bi5kr7e
@user-iu1bi5kr7e Жыл бұрын
Вумен , не вимен.
@selfedu_rus
@selfedu_rus Жыл бұрын
вимен, не вумен - множественное и единственное число
@user-iu1bi5kr7e
@user-iu1bi5kr7e Жыл бұрын
@@selfedu_rus тогда да, согласен. Сделайте курс по REST API FLASK пожалуйста.
@ibrahimoglu
@ibrahimoglu 2 жыл бұрын
👍
NERF WAR HEAVY: Drone Battle!
00:30
MacDannyGun
Рет қаралды 50 МЛН
Мы никогда не были так напуганы!
00:15
Аришнев
Рет қаралды 6 МЛН
Looks realistic #tiktok
00:22
Анастасия Тарасова
Рет қаралды 47 МЛН
КАРМАНЧИК 2 СЕЗОН 7 СЕРИЯ ФИНАЛ
21:37
Inter Production
Рет қаралды 517 М.
Про микросервисы за 8 минут
8:01
Merion Academy
Рет қаралды 124 М.
Django API + админка с нуля [за 10 минут]
14:17
NERF WAR HEAVY: Drone Battle!
00:30
MacDannyGun
Рет қаралды 50 МЛН