Подготовка к собеседованию на Python Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
три Всем привет А это Собес А на стажёра бесплатная стажировка а проект у найми найми э вот с нами Фёдор и Ваш покорный слуга Андрей он меня нашёл по Ютубу так уж получилось вы хотели людей не из практикума вот вам пожалуйста вот человек не из практикума Расскажи немножко про себя как ты начал заниматься питани змо где живёшь и вот это всё О'кей Меня зовут Фёдор Живу я в Великом Новгороде а питани змо начал заниматься Ну это интересная история у меня на работе постоянно была необходимость делать отчёты вот а отчёт
00:00:00 - 00:01:32
- Это несколько экселевский таблиц пять-шесть которые надо было сводить в одну общую А и соответственно отчёты занимали достаточно большое количество времени и [музыка] они были на ежедневной основе когда я начал прикидывать как мне это реализовать как автоматизировать это дело я попробовал нанять программиста на фрилансе но это стоило достаточно много денег и я решил сам поковыряться сначала обратил внимание на Vis bic при сго но когда начал глубже погружаться Мне он жутко не понравился и я слышал что есть классный скриптовый
00:00:47 - 00:02:20
язык Python илитон вообще изначально как я его слышал и попробовал реализовать на этом языке Ну и собственно говоря получилось даже получилось достаточно не больно прикрутить графический интерфейс с помощью библиотеки вот прочитал книгу лу программирование на Python начал погружаться в Рем которые есть именно в фреймворке Ну и получил первую практику Это был интернет-магазин причём у меня этих интернет-магазинов было несколько штук сделал скрипт который с помощью селениум натыкал в браузере а нужные селекты
00:01:40 - 00:03:24
вставлял айдини продуктов и выпускал на печать ценники вот всё это дело было автоматизировано а с помощью а графический интерфейс Inter а Open Excel для того чтобы с экой работать ну и селениум для того чтобы наты в браузере на клавиши вот в принципе наверное всё я ещё раз говорю это неоплачиваемая стажировка она тебе зачем у тебя же вот как бы работа есть Я вижу и и получается и ну Основная это работа не связана с программированием основная работа связана с управлением людьми А мне эта сфера стала интересно после того как я
00:02:36 - 00:04:14
начал погружаться изучать хочу плавно переходить в сторону программирования но никто не будет брать человека без опыта сейчас насколько я понимаю жены вообще никому не нужны вот ну или для того чтобы попасть Нана надо иметь достаточно богатый обширный за познаний и реализованные проекты Желательно чтобы они были в открытом доступе у меня нельзя показать из того что я делал Ну и де а а из каких-то своих домашних проектов пед проектов что ты делал а у меня шаб шаблон интернет магазина без данных не не не пробовал а
00:03:26 - 00:05:16
не пробовал делать шаблоны вот а у меня практически Ну такие они их показывать стыдно вот я обычно когда изучаю какую-то технологию я стараюсь что-то на ней написать Вот и после того как несколько каких-то проективний из них - это такое Унылое что показывать не очень хочется Кому бы то ни было Слушай ну Давай напишем что-нибудь сейчас прямо не Унылое какое-нибудь по-быстрому можешь сейчас расширить экранчик в чём ты обычно работаешь Давай быстренько создадим чего-нибудь быстренько на Джанг и там чего-нибудь буквально за
00:04:20 - 00:05:45
полчаса накидаю а питон какой мы будем использовать питон какой версии будем использовать какой уютнее всё равно давай дн 42 питон 311 У тебя есть 311 наверное нет 310 Ну я 310 взял Давай так только надо расшарить там есть такая Зелёная красивая кнопочка только Скрой там всё что у тебя под У тебя кстати тот экран виден там что-то что-то какие-то чёрные чёрные какие-то квадратики И вообще оно не читабельно но оно есть теперь экран монитора видно белый белый светится но это нено так где А внизу такая то окошко которое не хочу шарить
00:05:09 - 00:06:58
весь экран всё есть Да нормально видно можно риф побольше потому что иногда смотрят Люди из с каких-то там ну с очень странных устройств им не видно шрифты они потом очень побольше Да у тебя что это у тебя да Да а как ты оплачиваешь по орам сейчас же вот нельзя вроде Ну что поделать раньше оплачивал а теперь пират как-то получается без оплаты 18 хватит а думаю да чтобы нам всё-таки какое-то удобство было тоже окей ладно хорошо давай стартам я так понимаю у тебя уже виртуальное окружение активировано Да суд строчки
00:06:03 - 00:07:51
можешь кратко рассказать Зачем оно нужно в каждом проекте есть разные пакеты Вот и для того чтобы они не пересекались между собой и не засорять системный петон я не знаю как лучше сказать Вот используется виртуальное окружение то есть внутри виртуального окружения устанавливаются пакеты и для того чтобы его надо sce чтобы деактивировать dea Вот соответственно внутри виртуального окружения мы используем пакеты которые устанавливаем конкретно для какого-то проекта Угу сейчас погоди минуту окей Какой дн Ну 42 вроде вышел давай
00:07:02 - 00:08:37
его что у нас 41 Да нет 42 во видишь АНО это Альфа Ладно давай 41 хорошо уже скорее бы 42 вышел Было бы интереснее смотри Кроме этого дела Я вижу там потянулось ещё какие-то е какие-то Зачем А насколько я понимаю это зависимости которые а включаются в пакет Жан м м О'кей Ладно Хорошо давай создадим проекти быстренько у тебя что-то ничего не печатается А я знаю я не помню Амин Start Project дн минус админ Start Project название проекта Ну давай ST насколько я помню Start Project А и имя ну так проект создан у Хорошо
00:07:58 - 00:10:08
давай смотри мы хотелось бы чтобы это был Ну раз у тебя есть опыт в интернет-магазинах Давай интернет-магазин создадим где есть сущность товар с каким-то названием у этого товара есть какая-то категория Ну ну как это обычно в магазинах бывает то есть чайники к чайникам пылесоса к пылесосам Ну и какие-нибудь теги Ну давай у товара ещё цена будет вот А у категория название слаг или ещё что-то вот такое вот Угу сейчас секундочку А а а по-моему это Старт Up А да так о Слушай давай давай не магазин поскольку у нас
00:09:43 - 00:11:39
будет ресурс посвящённый подготовки к собеса то есть ну вот вот это мы сделаем вот эти вот собески то есть такая же история у нас есть вопрос Просто я расскажу сущность Да у нас есть вопрос этот вопрос принадлежит какой-нибудь категории То есть если мы готовимся про Python ну или там Кэн разработчика то это может быть общие вопросы про питон это могут быть вопросы про SQL это могут быть вопросы про фреймворк какой-то то есть там ФСК дн ещё что-то вот такое и Наша задача будет потом каким-то образом это
00:10:50 - 00:12:11
выводить и показывать Так что Ну я просто даже не знаю как назвать такое приложение какие есть мысли квиз ну давай квиз ладно не критично пусть будет Слушай Зачем вообще приложение создавать об можем раздробить наш проект то есть хранить в каждом приложении какие-то Ну не знаю Правильно Неправильно то марны единицы там допустим мы можем хранить всё что связано там с анкетирования вопросами в одном месте с юзера в другом месте и так далее Слушай а лся какой-то ниж или вообще как ты учился а сам Python А
00:11:30 - 00:13:15
это преимущественно луца книга Угу У него достаточно подробно описано Там две книжки в принципе Понятно хоть и несколько Скучновато и пришлось несколькими заходами э читать Вот ну то есть раз прочитал потом второй раз прочитал потом третий раз прочитал потому что А в начале очень тяжело воспринимать там некоторые вещи особенно то что касается переменных присваивания как-то происходит да то есть ну это больше касается наверное mutable и in mutable объектов а там допустим из таких явных и ярких примеров это когда ты
00:12:33 - 00:13:58
функции в качестве дефолтное mutable объект а он создаётся при старте программы и Соответственно в этом дефолтном дефолтной переменной которая передана в качестве в качестве дефолтное памяти который создан при старте программы и соответственно не совсем корректно будет работать если этот объект мутабельный вот а тоже интересная такая штука может произойти с лямбда функциями А Потому что насколько я помню область видимости лямбда функций она отличается от обычных функций Если я правильно помню то есть из такого яркого примера если мы
00:13:15 - 00:14:51
там делаем лямда функцию с помощью list comprehension и передаём в качестве одного из аргументов там а точнее не совсем в качестве одного из аргументов А ну в общем если передаём I вот этот for I in там Range там допустим то а во всех лямда функция I запишется самый последний тоже такая интересная штука вот Ну да там а работа с изменяемыми неизменяемыми Она довольно прикольная согласен да а м Если говорить про про Джангуль в исходном коде По большей части в меня интересовали вты миксины из которых строятся вты Вот то
00:14:02 - 00:15:45
есть там зачастую надо какое-то определённое поведение организовать допустим у меня есть и нали В общем Попро данные по-разному Да как мне это сделать писать на каждое отдельно на каждый отдельный запрос ВХ Раньше я так делал Потом поковыряться увидел там есть метод get get seral Вот И там можно переопределить зависимость от метода серий допустим мне надо как-то переопределить quet а есть метод Get quet А может быть мне нужно какую-то дополнительную логику вернуть Аа то я могу переопределить там лист либо трив
00:15:10 - 00:16:48
Ну понятна логика и А для того чтобы посмотреть как это реализуется Ну иногда приходится поковыряться в этом О'кей Ладно хорошо что сейчас сделал Так я добавил приложение КЗ в Install TS а моего основного проекта А в настройке моего проекта М А почему так Почему не Что там у нас что-то там у есть какая-то приблуда Это стандартные джавс не Вот смотри если мым квиз вот если откроем Apps в квизе вот через кз Кои Почему не Вот так вот заду Ну ладно хорошо допустим И зачем ты это зарегистрировал без этого
00:16:04 - 00:17:55
работа если я не зарегистрирую дн не будет знать о том что у меня есть приложение квиз и И что Что значит не знать А Ну я не смогу провести миграции допустим не смогу обращаться к СГУ для мого приложения Ну а если адреса Мы проше в квиз Мыза от регистрации сможем как-то работать с ними не могу сказать скорее всего не Давай попробуем давай начнём какой-нибудь давай возьмём и пока нуну пусть будет оно зарегистрировано Давай какой-нибудь пром чтобы главная страница и попробуем туда какой-нибудь рендер запихнуть
00:17:07 - 00:19:03
предлага ты Как ты хочешь дрф сделать или это будет шаблонами у нас история Ну я бы предпочёл дрф хорошо давай дрф [музыка] давай будем возвращать просто какой-нибудь текст Мама я покушал или ещё что-нибудь пока неважно Угу сейчас [музыка] секундочку Что ты делаешь Я добавляю а ДРВ Угу а он Разве в коробке не идёт дж нет О'кей ладно Ты копируешь из какого-то другого проекта своего А да не у меня документация я документацию открыл Вот так А ну и что нам надо блин а что мы будем отдавать у нас никаких данных Нет наверно словарик
00:18:11 - 00:20:07
Будем отдавать Ну давай давай пока словарик какой-нибудь и просто какой-то текст под каким-то ключом пока неважно мы сейчас Тестируем гипотезу что что-то какой-то кусочек Джанги будет работать э без а без регистрации и SMS Так это у нас так р клас пар клас нам не нужно Анти CL ой вроде там ничего такого нет можешь рассказать про то что ты передаёшь внутрь Гета А это объект Квеста А мы его Это получается то что мы получаем с фронтенда То есть это запрос пользователя он по после попадания в дн обогащается в
00:19:40 - 00:21:51
midle и соответственно Мы можем с ним работать например получить эти параметры пост данные если нам файл передан пользователя такого имеется Если такого нет то там будет анонимный пользователь Я если честно не помню А Get метод прописывается м Get и пост правильно я просто всё время Вью сетами пользовался и ну боль я я тебе тоже на на на скидку не скажу нуно похоже на похоже на правду на самом деле [музыка] э вернём словарик Да а что мы в нём вернём Да ну в принципе всё что угодно давай какой-нибудь
00:21:41 - 00:23:27
[музыка] Ну давай всё ок Ну давай H отлично попробуем работает или нет так так А вот это я не [музыка] помню так вот так а убрать а из сеттингов Ну давай посмотрим что оно работает с ним с этим-то должно точно работать а без без него Ну потом отключим и поймём что оно работает или нет запятую потерял так двадцать первая строчка запятую пте Я в правильном месте в [музыка] правильном так Окей миграции про них забыл миграции Здесь нам не нужны по сути он в принципе будет работать без них это же миграции на пользователей на
00:22:40 - 00:24:53
вки нужны сессии вот это вот всё М так а я наверное да наверное два слышал у тебя не очень хорошо Угу Нет А надо не работает без миграции Ну давай с миграцией [музыка] можешь рассказать что делает вот эта вот команда есть файлы миграций они по сути являются описанием структуры базы данных на каком-то конкретном этапе жизни Вот мы с помощью них можем Как создавать таблицы в базе данных Да создавать структуру так и откатываться назад если такая необходимость Есть Угу Окей ты как-то создавал свои кастомные миграции Да было
00:24:27 - 00:26:34
дело Для чего там была такая нетривиальная Задачка надо было появись новое Поле надо было его наполнить данными Однако На мой взгляд это не совсем хорошее решение не всегда оно подходит а на мой взгляд всё-таки Иногда лучше через эти менеджер команды делать подобного рода вещи но иногда требуется например когда осуществляется какой-то переезд из одной таблицы в другую Ну не знаю какой ещё пример привести вот из твоей практики ты для чего его [музыка] использовал если использовал А в Джан есть А как это use 18n интернационализация Да
00:25:45 - 00:27:34
но она работает на статику на статичные вещи а я хотел сделать интернационализации в таком виде чтобы у меня была она динамическая То есть все модели были переведены соответственно я юзал библиотеку Jung parler она создаёт связанную таблицу с переводами и мне важно было перенести Поля из искомой Модели изначальной Модели в уже таблицу с переводами Вот И для этого Я использовал миграцию Ну ладно Так мы миграции сделали Давай у нас видимо создались какие-то таблички всё сделалось Я наверное немножко
00:26:47 - 00:28:30
поменяю шеринг А ну вот отлично видно да да давай Теперь попробуем Удалить регистрацию Ну замен и посмотрим будет ть или нет Окей ну вообще по идее скорее всего вывалится ошибка Ну у меня так такое ощущение нет Как ни странно работает какие есть мысли Почему а Наверное потому что это Вью не обращается Никаким объектом в базе данных а соответственно Ну ты говорил про пользователя у нас же вот какие-то пользователи уже создались да Угу Ну или или хотя бы таблицы под них Мы же можем как-то к пользователям Get User или ещё
00:27:40 - 00:29:31
что-нибудь вот такое вот давай попробуем Ну вот теория понятная То есть если если она обращается к к базе данных то она должна бы зарегистрирован Ну как бы допустим То есть как бы это гипотеза нормальная Давай попробуем обратиться к базе данных таблицы пользователя и и вывести всех пользователей например на этот так он оттуда хоть Да оттуда так а что такое мы Обращаемся К менеджеру модели и получаем все объекты по сути это From users какой-нибудь не так Ну тут не совсем users конечно но тем не менее Ну условно говоря
00:28:45 - 00:30:42
там таблиц так и в рете вывести всех пользователей да да давай давай будем не H выводить а всех пользователей же так для этого надо сейер написать но Давайте чтобы проверить теорию мы сделаем это так а I что там есть User name for I in users что ты сделал Зачем А ну чтобы проверить не сериализовать нашего пользователя а проверить нашу теорию о том что если есть обращение к базе данных то он выт ошиб Угу хорошо ну мы по сути обратились мы мы проходим Слушай а а А разве он в двенадцатой строчке Не
00:30:07 - 00:32:03
обратился к базе данных нет а у джанга ленивые запросы и а соответственно мы можем там навешивать фильтры Select related PR related аннотации и так далее а до момента пока мы непосредственно не попытаемся получить объект юзера там допустим прин сделаем или начнём перебирать их в цикле Угу так Ну хорошо давай попробуем Ну сейчас наверное пользователей то у нас нет это нормально потому что мы же попробуем создать Да давай Create Super User как бы [музыка] он админ админ всё по классике не 1 2 3 а не
00:31:05 - 00:32:31
обращается значит гипотеза не состоявшая А ну Я полагаю что если мы создадим модели в нашем то они не созда в базе данных и соответственно мы не сможем к ним обра для это мы регистрируем приложение мы не само приложение как бы формально регистрируем А мы говорим смотрите когда будем миграция Извольте пробежаться в файл моделек и посмотреть что там у нас живёт Как у нас там происходит и вот это всё хорошо давай создадим модельку поско у нас эти квизы то есть сам текст текст квиза Нужен ответ на этот
00:32:04 - 00:33:46
квиз и соответственно какая-нибудь категория которая эта вся история принадлежит выглядит несложно правда да выглядит несложно [музыка] ла Зачем категории Можно же просто категорию категория будет относиться к Точнее мой квиз будет ссылаться на эту категорию я лучше назову её квиз категории квиз категории потому что этих категорий может быть много и разных Ну допустим так-то в принципе в табличках всё равно оно будет ээ Да имя приложения затем и модели а Нижнем регистре у угу по-моему так Ну по-моему через нижнее
00:32:57 - 00:34:28
подчёркивание ещё но Ну вот прямо вот 100% не помню не уверен Ладно хорошо Ну пусть будет квиз категория Давай у неё будет название Ну какой-нибудь строчкой ну и какой-нибудь слаг например максимальная длина а это обязательно хватит это вообще обязательно такая максимально А в чарл обязательно Угу хорошо да 150 нормально Ага И слаг что такое слаг А это А что-то что похоже на дишни Но человек это может прочитать то есть какое-то уникальное значение написанное на понятном человеку языке в понятном человеку виде А на
00:33:57 - 00:35:26
которое по которому можно получить конкретную модель Хорошо давай То есть у нас должен быть уникальный слаг да получается Угу а там по-моему есть слаг Field А я им не пользовался Да он есть а слаг а а почему не пользовался а не приходилось максимальная длина db индекс [музыка] стоит Так я загуглю по-быстрому что ь принимает я не могу быть Ну он латинские принимает и цифры нижнее подчеркивание и минусы поему как-то вот так вот он это может принимать а кириллицу и всё остальное он не это я не помню просто надо ему прописать
00:35:00 - 00:37:01
или нет надо А если это не прописывать можем любой с угодно экземпляре без проблем у а если Уник то он будет проверять и соответственно а нам нам нас очень сильно ругать за то что мы делаем что-то не так М что за Мета Зачем Аа Мета можно прописать а ряд я не знаю как это лучше характеристик [музыка] нашей модели например name - это это одиночное имя им в единственном числе категории категори это во множественном числе Ну ладно окей ещ что туда можно запихнуть там вообще много что можно зать Ну на практике чем чем ты
00:36:17 - 00:38:19
пользовался а валидация както Корей это когда я беру два поля и говорю о том что я хочу чтобы они были уникальные чтобы моя модель была уникальная по двум полям Угу угу ну и сортировку ещё можно запихнуть на самом деле там много да сортировка Ну не будем будем пока пусть будет как есть так хорошо и так далее так а квиз категорию мы взяли А теперь А наш квиз непосредственно ой Отлично Так а ну для начала сразу категорию категории и у нас это Mods for правильно Я помню у нас у квизов есть категории да то есть Каждый каждый квиз
00:37:31 - 00:39:29
принадлежит одной категории В категории есть может быть несколько вопросов [музыка] а так далее а далее а а зачем вот точка квиз точка квиз категория без этого Не сработает Не сработает Ну а зачем Ну я привык писать в таком виде он явно указывает приложение явно указывает модель Угу Вот но можно и так вот в принципе разниц большой нет Так здесь гория а далее да по-хорошему ещё метод р определить Зачем А это строковое представление нашей модели Почему не репер а не могу сказать а не пользовался им ре
00:38:46 - 00:40:54
это ещё какой-то Magic метод не я им не пользовался не могу сказать зачем он даже нужен Ну представление модели тоже да Угу но все пользуются методом р я ну ну ну здесь Да у дн так не видел Ладно хорошо вот а в целом этими Magic методами реализуется один из одна из парадигм объектно-ориентированного программирования получается так у нас инкапсуляция полиморфизм мы можем переопределить метод у модели не у модели у класса и соответственно мы можем пользоваться сложением также как с числами но допустим со своим собственным объектом
00:39:58 - 00:41:39
Да мы можем они тогда можно также переопределять Правда Ну ну как как Как пример по-моему это подходит Ну хотя ну в принци в принципе может быть да Угу ошибаться что за одет А это что будет происходить с нашим квизов с категорией все квизы Да давай так Ага тогда каскейд а так ну и ну смотри у нас У этого вопрос А есть вопросы и есть ответы Ага а сейчас буквально секундочку А так а и сразу наверное related name возьмём А это зачем это я не знаю множественном числе написать Ну наверное так да Ну пускай
00:40:50 - 00:42:47
будет но я бы посмотрел загубил - Это для того чтобы обратиться это обратная связь соответственно я могу смогу из категории обратиться из категории получить все квизы в противном случае мне бы пришлось писа в кейсе имя модели нижнее подчёркивание сет по-моему так угу не помню если запятую забыл на 2 да да на конце так всё здесь сделали Так нам нужны вопросы а и ответы угу так м как это лучше сделать [музыка] Аа ня что смущает я думаю как у нас получается один вопрос несколько ответов или квиз - это как бы это как
00:42:05 - 00:44:13
анкета нет у нас смотри у нас давай пока сделаем по-простому У нас есть один вопрос и один ответ то есть логика использования Какая Мы выбираем тему у нас выбрасываются на эту историю все все вопросы и у нас ответ Он скрыт Ну Ява скриптом наме и отве тоже выбрасываются зас не делать и когда у нас есть мы прочитали вопрос где-то в глубине души на него ответили потом жмём посмотреть правильный ответ сравнили правильно понимаем неправильно понимаем есть смысл это учить Нет смысла учить переходим к
00:43:26 - 00:45:01
следующему вопросу то есть вот примерно так должно работать тогда можно зде сразу вопрос ответ в этой модели Ну можно почему нет а в таком случае а давай по-быстренькому у нас осталось немножко времени чтобы нам ещё это дело каким-то образом сериализовать надо будет и а вывести просто Ну и быстренько зарегать в админку прямо вот чтобы чтобы у нас прямо mvp пишно было [музыка] Угу Пускай 150 Угу двадцать Пятая строчка запятая Ну я бы сказал что ответ может быть большим не обязательно он уместится в
00:44:14 - 00:46:05
150 символ или вообще там даже 255 Давай дам Угу а угу так угу а Окей А в админке по простенько сделать Да давай просто зарегистрируем прям вот чтобы хоть как-то мы могли брать и по-моему так это делается так и имя модели без этого да так то же самое для Угу Так а у нас квиз закомментировать если мы сейчас нет давай раскомментировать что он работать не будет да О'кей [музыка] ну и соответственно сразу помири Да можно было всё просто мигрировать до привычка Ну да как бы можно было сразу всё так так А для начала категорию
00:45:35 - 00:48:09
добавим имя категори Давай тест Ну давай и добавим вопрос ты когда-нибудь на собеса уже был да был несколько раз какой тво твой любимый вопрос на собеса которые те задают больше чаще всего А про опыт задают чаще всего нет из раздела питона я понял понял понял тип данных Дава Какие типы данных есть пита и какие альные А не лучше так изменя изменяемые неизменяемые давай по-русски Е А можешь на ВС скидку сказать какие есть встроенные типы данных изменяемые а есть неизменяемые а изменяемые аа это лист угут
00:47:45 - 00:49:36
А что у нас ещё есть се Угу се что у нас ещё там табельное Я сейчас не вспомню слёта так а здесь у нас этот кортеж н tye бу string Ну и можно Ну можно не знаю Ну можно ещё там где-то есть [музыка] ещё числа мые помн как они точно называются ноль програм сталкивается Так ну и сохраним тут у меня метод с не определён так не страшно Давай попробуем вывести это дело на страничку а что мы будем получать а лист А и детей Да лист и детей всё по классике у нас акз также квиз А ну кли се так [музыка] А помоему неправильно написал
00:49:20 - 00:52:14
или правильно правильно Так у нас лист будет А создавать мы не планируем или планируем Нет давай давай не будем кру то есть мы создаём пока через администратора а человек Просто может пользоваться по-моему там это есть так а лист мы получаем все ТВ Окей трив может быть придётся подумать А как мы будем выводить Так мы будем выводить человек сначала выбирает категорию и потом идёт Да давай сначала у нас он должен посмотреть все категории и соответственно вопросы внутри категории Ага Окей тогда мы
00:51:28 - 00:53:11
пойдём мы сделаем во-первых так разделим Так что у нас а у нас тогда идём от категори category object Так мы за импортировались [музыка] лас по-моему Так у нас а здесь у нас пока будет пусто нам надо его создать не против если я сверху наб Ну дава есть поте понят создавать файле serializers и чтобы оно там жило вот ну мы для того чтобы побыстрее это сделать а угу можем здесь как бы чтобы не импортировать не вот это вот всё Ну так так оно просто и быстро Так это у нас [музыка] Лие будет мол сейер
00:52:26 - 00:54:21
Так а у нас в квиз категории есть Нам нужен для того чтобы извлекать категорию поэтому мы перечислим все поля так класс Мета есть по-моему он так принимает да е все и так он ещ АШК подтянет помоему Да нет так да он подтянет Ну хотя можно и перечислить Ну давай давай оставим Пока так а потом решим что АШК нам не нужен и перечислим и у на [музыка] Что ты делаешь Я говорю что а промазал я говорю что так Господи сюда может ходить любой так и он по-моему принимает в виде списка так а так а и нам надо так нам надо здесь ещё
00:53:59 - 00:56:19
а [музыка] генерик так не помню если честно так Так [музыка] издел ты как он их принимает так genic так меня уже на открыто Что за generic Зачем нужен [музыка] а а ну по сути он а позволяет несколько схаляхо чтобы у меня было а списков чтобы у меня была было детальное представление А И generic viewset - это связующая что ли между этими двумя миксина я не сильно глубоко погружался что конкретно делает vet но вероятнее всего Он позволяет полениться и не прописывать для каждого метода отдельный роут так и
00:55:44 - 00:58:16
я хотел посмотреть посмотреть а нет это ВТВ это ВТВ А тут по-моему надо прописать а аргумент который по которому он будет а извлекать объект так проще [музыка] а Get вот всё он уже показывает так а так а Up Field Field Да у нас уга так ПС у нас получается Field это будет а слаг вот так Ну и наверное нам для детального представления надо а по-другому или Хотя с другой стороны а ну мы Да мы по сла категории получаем все вопросы Угу И нам надо вероятнее всего сделать ещё один сериала а для того чтобы а детально а
00:57:12 - 00:59:52
представить это всё дело Так а кз категория это мы переопределить позже qu category сейер так тоже кз категория Мы будем также сериализовать А наши вопросы у нас мо квизы наши так какие у нас будут поля а категория нам не нужна Нам нужен а вопрос а и ответ А почему нам Мне нужна категория А потому что мы будем а идти от категории То есть у нас будет на Верхнем уровне категория и все а вопросы категории Мы же так договорились что мы именно так и хотим то есть категорию Мы оттуда можем выдернуть хороо
00:59:00 - 01:00:56
я на всякий случай айдини ещё выведу но тут как бы это самое вопрос Нужно или нет И модель модель я забыл вообще по-хорошему привести бы всё в один вид модель обычно пишется сверху Ну да ладно И здесь нам тогда в детальном сериала надо поправить поля что нам надо нам надо затем нам надо Я думаю не помешает сла и затем мы Обращаемся по к вопросам вопро для что рили Зуй их Да кстати порт нуть а стерилизуют сказать что их будет много может быть много а вот так а здесь у нас [музыка] получается се клас по-моему или просто А
01:00:27 - 01:02:49
так по-моему гдето так что мы проверяем Если э дари тогда мы будем отдавать Ага а иначе мы будем возвращать супер Так ну и чтобы это соответствовало духу времени это уберём а так Get хочу переопределить [музыка] quet если у нас так у нас супер Get мы берём от супера Но если у нас Что такое супер в нашем случае это это родительский мы берём метод родителя так и здесь если у нас делка Мы возвращаем так это у нас категория категория это значит и берём Зачем ты делаешь сэкономить запросы Каким образом делает на уровне базы данных
01:02:03 - 01:04:43
а он делает два запроса к базе данных он получать будет все категории и затем получать все вопросы вот и соответственно мы должны бы а в противном случае на каждый вопрос был бы отдельный Запрос к базе данных Угу отлично Ну опять же там можно много что вытворяй работает уже а нет Нам надо зарегистрировать так тут я не помню [музыка] роутер так я а сейчас немножко поко пащук [музыка] что поделать Так мы а зарегистрировали роутер Так здесь у нас Ари [музыка] А так и наша наш VI категория Vi категории
01:04:09 - 01:06:24
viewset Так что здесь ещё надо надо ur patterns равно URL patterns плюс равно router urls так просто плюс так там список тут список получится вообще по идее Должно всё получиться Так где у меня ладно А вот он так и что мы [музыка] пошли Так ну во-первых проверим что у нас есть вот она она у нас появилась угу вот у наша а категория наш слаг по слага мы можем Аа получить получается ответу передаём тест Так что он об так А почему так так мне кажется из-за так так а [музыка] он так не у что он на это
01:05:59 - 01:08:49
жалуется нет HM Угу понял так проверяем вот всё заработало ошибся Ничего страшного бывает путаюсь Окей Ладненько в принципе более-менее мне понятно твой уровень Давай к фид переходить опять же мы чуть-чуть чуть-чуть планировали побыстрее Но ничего страшного задержались на чуть-чуть общем смотри ну не буду Как говорится ходить вокруг до около я удивлён что ты до сих пор не получил офер от какой-то компании которая готова платить тебе деньги за твою работу вот нос ты готов [музыка] бесплатно я буду пр очень ра видеть в команде
01:08:24 - 01:10:22
надеюсь что мы подружимся и у нас будет интересное сотрудничество ты там будешь не один я думаю что вы будете друг дружку заражать и плюс ещё я вам найду внешних консультантов из Больших хороших компаний но некоторых из них ты видел на канале Вот это [музыка] Олег в пятницу у нас будет некоторый сбор будем общаться про архитектуру потому что барышни нам Проджект накидаю уже фич Мы будем их ухи в проект и понимать как это всё будет так что вот Спасибо большое что затратил время на это собеседование
01:09:59 - 01:11:32
Я не вижу это завис или нет не сиди Ир вот поэтому буду реально рад видеть в команде очень круто что ты меня нашёл прям кайфово мне понравился твой ронь А ну круто но я по со бесам давно уже не ходил вот ну честно говоря это прям прям хорошо так что можешь передать приветы маме папе соседу алкоголику кошкам собакам друзьям всем кому хочешь это это ок в нашем случае а но можно немножко времени или нет хорошо то я несколько сомневаюсь Я хочу обдумать А ещё это разо не проблема Я тебя понимаю нормально то есть Сколько времени тебе
01:10:48 - 01:12:41
нужно подумать Аа ну я думаю до среды Я подумаю Мне просто надо уточнить у девушки не будет ли она против такого Угу вот а что касается по времени Это не против что я там в день могу уделять 2-3 часа времени вот прямо не проблема абсолютно То есть как бы здесь я же всё понимаю в том смысле что если бы это была работа то это работа если это пед проект каждый вкладывает Ну по сути как типа Орса получается Да каждый вкладывает тот объём в который он может мы просто раз в неделю будем по понедельникам например собираться
01:11:46 - 01:13:15
набирать себе таски сколько тасо возьмёшь лько столько ты и сделаешь если у тебя нужно там неделю чтобы ну как бы эту неделю Ребята Извините я вообще работать не могу или там 2 недели или месяц или ребята Я хочу паузу пока сделать это вообще Тоже нормально вот с этим расчётом я беру в проект ни одного человека как это обычно бывает вот а сразу несколько чтобы народ мог друг дружку страховать в таких вот моментах и выпадаю выпадающее Время как-то оно было выпадало Ну как бы оно было перекрыто а что касается
01:12:31 - 01:14:01
литеров не знаю GU или както лучше назвать это всё будет уже в пятницу обсуждаться Ну смотри если говорить про тоже немножко тороплюсь поэтому немножко ото от стандартной истории Давай сделаем паузу сделаем вид что я как бы не сделал Фер то есть не сказал что всё окей а такое знаешь на сложных щах Задавай свои вопросы и в зависимости от этих вопросов я буду ещё подумать порешать смотри по НМ по всей этой штуке мы будем настраивать не не сделан туда мы [музыка] запихнул как-то мы всю эту историю будем
01:13:15 - 01:14:43
покрывать тестами вот чтобы чтобы уж совсем страшно У нас там не было поэтому по поводу литеров не переживай на то я просто сталкивался с разными стилями написания ну а было такое Что ругались за последнюю запятую в списке типа не надо так делать это было смотря где если список У тебя вот так вот э сверху вниз то там нужна если список у тебя в строчку то тогда не нужна А если если если говорить про п8 то оно вот так устроено угу вот поэтому нет у нас всё будет автоматом если у нас к 8 это съел значит он съел значит всё ок Ну я
01:14:08 - 01:15:50
обратил внимание как ты форматирует код мне это импонирует что вот эти вот все штуки мы лучше Вот вниз у толкаем и каждая На своей строчке Это это хорошечно как по мне Спасибо всё я думаю мне надо уже бежать Да Аналогично Всё спасибо большое что был с нами Э давай жду твоего решения до среды Ок счастливо да
01:14:59 - 01:16:04