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

Инфографика: 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.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!