Django 3.0. Что нового?
Новый релиз web-фреймворка Django 3.0 уже состоялся. Ветка будет обновляться до апреля 2021 года. LTS-ветка 2.22 обеспечена поддержкой до апреля 2022 года, а ветка 1.11 до апреля 2020 года. Ветка 2.1 уже не поддерживается.
Что изменилось?
- Поддержка MariaDB. Django теперь официально поддерживает MariaDB 10.1 и выше.
- Поддержка ASGI. Django 3.0 начал наш путь к тому, чтобы сделать Django полностью асинхронным, предоставляя поддержку для работы в качестве приложения ASGI. Это в дополнение к существующей поддержке WSGI. Джанго намерен поддержать оба в блишайшем будущем. Однако асинхронные функции будут доступны только для приложений, работающих под ASGI. Нет необходимости переключать приложения, если вы не хотите начинать экспериментировать с асинхронным кодом, но разработчики предоставили документацию по развертыванию с ASGI, если вы хотите узнать больше. Обратите внимание, что в качестве “побочного эффекта” этого изменения, Django теперь знает об асинхронных циклах событий и блокирует вызывающий код, помеченный как “асинхронный небезопасный”, такой как операции ORM из асинхронного контекста. Если вы ранее использовали Django из асинхронного кода, это может сработать, если вы делали это неправильно. Если вы видите ошибку SynchronousOnlyOperation, внимательно изучите свой код и переместите все операции с базой данных в синхронный дочерний поток.
- Ограничения исключения на PostgreSQL. Для PostgreSQL реализован класс ExclusionConstraint для использования ограничений на базе выражения EXCLUDE. Новый класс ExclusionConstraint позволяет добавлять ограничения исключения в PostgreSQL. Ограничения добавляются в модели с помощью параметра Meta.constraints.
- Фильтрация выражений. Выражения, которые выводят BooleanField, теперь могут использоваться непосредственно в фильтрах QuerySet, без необходимости сначала аннотировать, а затем фильтровать по аннотации.
- Перечисления для выбора модельного поля. Пользовательские типы перечисления TextChoices, IntegerChoices и Choices теперь доступны в качестве способа определения Field.choices. Типы TextChoices и IntegerChoices предоставляются для текстовых и целочисленных полей. Класс Choices позволяет определить совместимое перечисление для других конкретных типов данных.
- Прекращена поддержка Python 3.5.
- Незначительные изменения. django.contrib.admin Добавлена поддержка атрибута admin_order_field для свойств в ModelAdmin.list_display. Новый метод ModelAdmin.get_inlines () позволяет указывать встроенные функции на основе запроса или экземпляра модели.
- Библиотека Select2 обновлена с версии 4.0.3 до 4.0.7.
- jQuery обновлен с версии 3.3.1 до 3.4.1.
Загрузить Django 3.0 можно с официальной страницы.