• en
  • Language: ru
  • Documentation version: 3

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 во время этих тестов.

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

Нет.