2.1.2 Примечания к выпуску

Channels 2.1.2 - это очередной релиз с исправлением ошибок в серии 2.1.

Отдельное спасибо участникам спринтов DjangoCon Europe, которые помогли с некоторыми из этих исправлений.

Основные изменения

Промежуточное ПО для сессий и аутентификации было переработано, чтобы сделать его неблокирующим. Ранее эти промежуточные программы потенциально выполняли доступ к базе данных или хранилищу сессий в синхронном конструкторе ASGI, что означало блокировку всего цикла событий.

Вместо этого они теперь модифицированы для добавления LazyObjects в область видимости в местах, где будет находиться сессия или пользователь, а затем, когда обработка проходит через свою асинхронную часть, доступ к этим хранилищам осуществляется неблокирующим образом.

Это должно быть незаметным изменением для конечных пользователей, но если вы увидите странное поведение или нерешенный LazyObject, дайте нам знать.

Исправления и небольшие изменения

  • AsyncHttpConsumer теперь имеет метод disconnect(), который можно переопределить, если вы хотите выполнять действия (например, выходить из групп), когда длительный HTTP-запрос отключается.

  • Контекст маршрутизации URL теперь включает аргументы по умолчанию из URLconf в ключ url_route контекста, наряду с захваченными аргументами/группами из шаблона URL.

  • Параметр FORCE_SCRIPT_NAME теперь соблюдается в режиме ASGI, и позволяет вам переопределить, куда, по мнению Django, монтируется корневой URL вашего приложения.

  • ALLOWED_HOSTS теперь правильно устанавливается во время тестов LiveServerTests, что означает, что вы больше не будете получать ошибки 400 Bad Request во время этих тестов.

Обратные несовместимые изменения

Нет.

Вернуться на верх