Тёмный

Самое полезное нововведение Django 5 | Generated Field [Middle] 

Павлин Шарит - ИТ вместе с Николаем Павлиным
Просмотров 3,7 тыс.
50% 1

👉 Telegram: t.me/pavlin_share
🎥 Чтобы не пропустить ничего важного и всегда быть в курсе, подписывайтесь на мой канал и активируйте уведомления! 🔔

Наука

Опубликовано:

 

18 ноя 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 26   
@user-it3yo1sn6i
@user-it3yo1sn6i 7 месяцев назад
Интересная и полезная фишка! Здорово что джанго активно развивается.
@romantretyakov6243
@romantretyakov6243 7 месяцев назад
Хороший формат видео, с новыми фишками. Будет здорово увидеть подобное и по другим популярным библиотекам(когда будут выходить обновления, конечно). Спасибо за ролик!
@MrSunTrope
@MrSunTrope 17 дней назад
Круто, по факту если режим без сохранения тот же annotate, ну а если нужны данные то меньше велосипедидь нужно, спасибо)
@Stas77783
@Stas77783 6 месяцев назад
Полезный видос!
@Hunger53
@Hunger53 7 месяцев назад
Спасибо за видео! Случайно попалось в рекомендациях. Было бы интересно всё таки в деталях узнать что же там нового в асинхронщине, так как сам вообще не вникал туда.
@nikolaypavlin
@nikolaypavlin 7 месяцев назад
Подписывайтесь на канал и рекомендация перестанет быть случайной Если честно, мне кажется, что приминительно к джанге асинхронную часть можно будет рассматривать, когда уже будет все под это адаптировано + DRF/graphene
@croxfxmotiondesigner5243
@croxfxmotiondesigner5243 7 месяцев назад
Наконец-то, это очень полезный функционал, который решает достаточно большое количество ситуаций. Переопределение save кстати не лучшая реализация, так как если в коде где-то используется update или bulk update то save не вызывается. А если все значения полей сохранять через save(), то получаются не очень оптимальные запросы к БД, что замедляет время работы.
@nikolaypavlin
@nikolaypavlin 7 месяцев назад
Запросы к БД не изменяться, если вызывать до «супера», вы просто аттрибуты объекты переопределятся до сохранения в БД. Апдейты и балки (и создание и обновление), конечно, не отработают, потому что на уровне SQL-а отработает
@JojoKaseq
@JojoKaseq 5 месяцев назад
добрый вечер, Николай! спасибо за разбор, недавно спросили про данный тип поля на собеседовании, а я знать не знал про такое нововведение - обогатился благодаря вам ;) подскажите, какую клавиатуру использовали в ролике? - очень приятно звучит
@nikolaypavlin
@nikolaypavlin 5 месяцев назад
Спасибо! Клавиатура - akko alice pro plus, свичи gateron pro red
@JojoKaseq
@JojoKaseq 5 месяцев назад
@@nikolaypavlin благодарю
@alexey6680
@alexey6680 7 месяцев назад
Нормальная штука, я где-то читал что переопределять save() не лучшая практика, лучше создать менеджер модели и инкапсулировать логику в нем. А почему в итоге поле с db_persist=False появилось в таблице? SQLite видимо не поддерживает такое поле?
@nikolaypavlin
@nikolaypavlin 7 месяцев назад
Поддерживает, просто как и говорю в ролике оно рассчитывается при запросе к нему. Если посмотреть на структуру таблицы там будут оба поля, просто одно из них “generated”, в другое физически находится в БД. Смотря какую часть логики описываете, в менеджеры все-таки оперируем уровнем SQL-а
@stratman_pro
@stratman_pro 6 месяцев назад
Добрый день! Один косяк обнаружил касаемо авторизации и ВЫХОДА пользователей. В Django 5.0 не работает стандартный класс LogoutView, когда в гкдыюзн вызываешь его через path('logout', LogoutView.as_view(), 'logout'). Вместо перевода на страницу с шаблоном в папке registration/logged.out выдается ошибка HTTP 405... Нигде еще не нашел решения. Похоже, что это баг.
@nikolaypavlin
@nikolaypavlin 6 месяцев назад
Пошел проверить ради интереса, вот, что нашел: postimg.cc/dLwf27yZ Просто запретили метод get для этой вьюхи. Для 4 в ворнингах было (131 строка) - github.com/django/django/blob/stable/4.2.x/django/contrib/auth/views.py
@stratman_pro
@stratman_pro 6 месяцев назад
@@nikolaypavlin Это я понял. Как его теперь использовать? Попробуйте сами - ничего не выйдет. Выскочит "страница недоступна" с ошибкой 405.
@nikolaypavlin
@nikolaypavlin 6 месяцев назад
Выскочит если отправить гет запрос, потому что теперь гет запросы не обрабатываются о чем и говорит 405 ошибка. Если открывать роут в браузере, т.е. открыть ссылку /logout, то браузер отправит как раз гет запрос и Джанго выдаст ошибку. Чтобы воспользоваться вьюхой надо отправить туда пост запрос, вот пример: docs.djangoproject.com/en/4.1/releases/4.1/#log-out-via-get
@stratman_pro
@stratman_pro 6 месяцев назад
@@nikolaypavlin Спасибо! То есть теперь вместо 1 ссылки url 'logout' нужно целую форму делать. Ну это разработчикам 5!
@aeees8
@aeees8 3 месяца назад
Чем эти генеративные поля лучше использования триггеров типа UPDATE в SQL?
@nikolaypavlin
@nikolaypavlin 3 месяца назад
Если у тебя задача, сделать автоматически вычисляемое поле, то это удобный и простой способ сделать это, причем вычисляемым или физическим столбцом Можно костылить это на триггерах (create + update), но виртуального столбца все равно не добьешься
@tnlol
@tnlol 2 месяца назад
Тригеры если что вообще лучше избегать, в большом проекте так точно.
@dodokwak
@dodokwak 2 месяца назад
Обнаружила, что интеграция с sentry django 5 пробуксовывает. Вылетает ошибка.
@nikolaypavlin
@nikolaypavlin 2 месяца назад
Какие ошибки? Я на своих проектах не замечал, вернее сказать действительно отваливался, но именно на новых версиях celery, зафризили версию пониже, больше проблем не наблюдаем
@dodokwak
@dodokwak 2 месяца назад
@@nikolaypavlin всё, нашла. Нужно было про-upgrade-ся. Ошибка была с tuple assign, но потом её обнаружили и подпилили
@user-iw2ms1sz9i
@user-iw2ms1sz9i 5 месяцев назад
джанго уже свое отжил, даже нормальную асинхронщину завести не могут, его спасает только то, что много уже на нем написано и нужно этот калл как то поддерживать, учите фастапи господа
@nikolaypavlin
@nikolaypavlin 5 месяцев назад
Согласен, конечно, что асинхрощину завести не могут, sync_to_async это костыли и не все middleware его поддерживают Но надо идти от задачи, надо понимать, что асинхронность даст прирост производительности, и что эта производительность нужнее (да и вообще требуется), чем скорость разработки Про учите фастапы - будьте осторжнее, тоже понимайте зачем. Fastapi 288 вакансий, 306 вакансий (hh на момент написания вакансии, мск)
Далее
Docker за 20 минут
21:42
Просмотров 63 тыс.
What's new in Django 5.0!
6:30
Просмотров 13 тыс.