Обновление Django с 3.2 LTS до Django 5.04 приводит к typeerror: requires_system_checks must be a list or tuple
Я только что обновил Django с 3.2 LTS до последней версии Django 5.0.4 и обновил все пакеты по мере необходимости, и после попытки запустить docker-compose для запуска моего api веб-сервера я получаю следующий след :
my-api | File "/opt/my-api-core/manage.py", line 22, in <module>
my-api | execute_from_command_line(sys.argv)
my-api | File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
my-api | utility.execute()
my-api | File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 436, in execute
my-api | self.fetch_command(subcommand).run_from_argv(self.argv)
my-api | File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 275, in fetch_command
my-api | klass = load_command_class(app_name, subcommand)
my-api | File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 49, in load_command_class
my-api | return module.Command()
my-api | File "/usr/local/lib/python3.10/site-packages/django_media_fixtures/management/commands/collectmedia.py", line 35, in __init__
my-api | super(Command, self).__init__(*args, **kwargs)
my-api | File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 285, in __init__
my-api | raise TypeError("requires_system_checks must be a list or tuple.")
my-api | TypeError: requires_system_checks must be a list or tuple.
Ниже приведены мои попытки:
- django-media-fixtures - это то, что видно в трассировке, поэтому я использовал https://pypi.org/project/django-media-fixtures-next/ после изменения его с https://pypi.org/project/django-media-fixtures/
.- Понижение версии Django до 4.2.11 и вплоть до 4.1 с нынешней 5.0.4
.
Однако ошибка сохраняется. Я не вижу необходимости изменять сам site-packages, так как это не кажется правильным способом. Ищу решение, как обойти эту проблему. Я видел другие сообщения о стеках, но не смог решить проблему в моем случае.
Вот некоторые :
Django 4.1.9 requires_system_checks issue with manage.py - это ошибка или нет
Да, проблема в django-media-fixtures
(и django-media-fixtures-next
), которые больше не поддерживаются. Вы можете форк проекта на Github и использовать свой форк в качестве зависимости. Вам придется изменить эту строку:
requires_system_checks = False
до
requires_system_checks = []
в вашей вилке.
Затем вы можете изменить соответствующую строку в вашем requirements.txt
на:
django-media-fixtures @ git+https://github.com/<your username>/django-media-fixtures