ImportError: cannot import name 'url' from 'django.conf.urls' in packages

У меня есть проект миграции веб-приложения django с Django-3.2.14 на Django-4.0. Сразу после миграции, когда я запускаю сервер, я получаю ошибку, как показано в выводе Console. Когда я проследил изменения, они были отслежены до пакета django-compat, который вызывался пакетом django-background-tasks. my_env - это мое виртуальное окружение.

У нас есть последняя версия django-compat, которая 1.0.15 и django-background-tasks, которая 1.2.5.

Не могли бы вы рассмотреть это?

Заранее спасибо.

Консоль:

В Django-4.0 в настоящее время удален url, вместо этого вы можете сделать следующее:-

from django.urls import re_path as url

Django удалил URL из версии 4.0. Проверьте документацию здесь:

https://django-background-tasks.readthedocs.io/en/latest/#supported-versions-and-compatibility

Альтернативно, вы можете ухудшить его обратно до 3.2.10, что устранит проблему

Обновленный ответ

К сожалению, в настоящее время нет поддерживаемой версии django-background-tasks. Похоже, что вы не сможете перейти на django 4.0 без перехода на любой другой пакет, который будет выполнять ту же работу, что и django-background-tasks.

Старый ответ

Пакет background_task использует django-compat, который не поддерживается новыми версиями django.

D:\New_Folder\github\myenv\lib\site-packages\background_task\models.py

from compat import StringIO

Насколько я могу судить по трассировке стека, больше нет необходимости использовать пакет django-compat. Пакет background_task должен использовать StringIO непосредственно из пакета по умолчанию io.

Вам понадобится обновленная версия пакета background_task, которая больше не использует пакет django-compat. Насколько я могу судить, не существует новой версии без этой зависимости.

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