我刚刚将 Django 从 3.2 LTS 升级到最新的 Django 5.0.4,并根据需要更新了所有包,在尝试运行 docker-compose 来启动我的 api Web 服务器后,我得到以下跟踪:
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 以及从现在的 5.0.4 直到 4.1
但是,错误仍然存在。我认为不需要修改站点包本身,因为这似乎不是正确的方法。寻找解决方案来解决这个问题。我确实看到了其他堆栈帖子,但在我的案例中无法解决它。
这里有一些:
Django 4.1.9 require_system_checks 问题与manage.py - 这是否是一个错误
如何修复“TypeError:requires_system_checks 必须是列表或元组。”由“py manage.py grpcrunserver”命令引起的?
您可以在 Github 上分叉该项目并使用您自己的分叉作为依赖项。您必须更改此行:
requires_system_checks = False
到
requires_system_checks = []
在你的叉子里。
然后您可以将
requirements.txt
中的相关行更改为:
django-media-fixtures @ git+https://github.com/<your username>/django-media-fixtures