将 Django 从 3.2 LTS 升级到 Django 5.04 会导致类型错误:requires_system_checks 必须是列表或元组 [重复]

问题描述 投票:0回答:1

我刚刚将 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.

以下是我迄今为止所做的尝试:

  1. django-media-fixtures 是在跟踪中看到的,所以我使用 https://pypi.org/project/django-media-fixtures-next/ 更改后 它来自 https://pypi.org/project/django-media-fixtures/
  2. 降级 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”命令引起的?

django django-rest-framework manage.py django-4.0 django-4.1
1个回答
0
投票

您可以在 Github 上分叉该项目并使用您自己的分叉作为依赖项。您必须更改此行

    requires_system_checks = False

    requires_system_checks = []

在你的叉子里。

然后您可以将

requirements.txt
中的相关行更改为:

django-media-fixtures @ git+https://github.com/<your username>/django-media-fixtures
© www.soinside.com 2019 - 2024. All rights reserved.