Состоялся релиз веб-фреймворка Django 5.0
2026-02-21 10:16 Diff

Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.

Разработчики веб-фреймворка Django сообщили о релизе версии 5.0. С момента выхода прошлой версии прошло два года, поэтому у команды было много времени на добавление новых функций. Рассказываем об основных изменениях в Django.

Версии Python 3.8 и 3.9 больше не поддерживаются. Это важно учитывать при переходе на новую версию фреймворка. Если другие зависимости пока ещё не умеют работать с версией Python 3.10 и выше, то следует воспользоваться альтернативами или на время отказаться от обновления. Кроме того, важно отметить, что Django 4.2 будет доступен в режиме долгосрочной поддержки (Long term support, LTS) до 2026 года.

График поддерживаемых и будущих версий Django
Инфографика: Django

В обновлении добавили поддержку функции GeneratedField, предназначенной для генерации данных в полях баз данных. С её помощью можно использовать уже имеющиеся параметры для создания на их основе новых. К примеру, если известны даты начала и конца отпуска, то можно автоматически заполнить поле с продолжительностью. Полученные данные можно использовать на всех серверах, где доступна база данных.

class Booking (models.Model): start_date = models.DateField() end_date = models.DateField() duration = models.GeneratedField( expression=F("end_date")-F("start_date"), output_field=models.DurationField(), db_persist=True, )

Кроме того, появился параметр Field.db_default, позволяющий использовать в базах данных значение по умолчанию. Примечательно, что тикет с просьбой добавить такую возможность в Django создали 18 лет назад, но команда разработчиков сделала это только сейчас.

from django.db import models from django.db.models.functions import Now, Pi class MyModel(models.Model): age = models.IntegerField(db_default=18) created = models.DateTimeField(db_default=Now()) circumference = models.FloatField(db_default=2 * Pi())

В Django 5.0 добавили дополнительные асинхронные методы как для Client, так и для AsyncClient. С их помощью можно реализовывать асинхронное тестирование приложений. Также появилась поддержка концепции групп полей и шаблонов групп полей. Это необходимо для оптимизации рендеринга компонентов на веб-странице, связанных с полями формы Django.

У веб-фреймворка Django открытый код, распространяемый по лицензии BSD. Актуальную версию можно скачать на сайте проекта. Кроме того, можно установить фреймворк с помощью пакетного менеджера PyPI и локального клонирования репозитория:

  • pip install Django==5.0;
  • git clone https://github.com/django/django.git.
Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу