argparse.ArgumentError:argument--跳过检查:冲突的选项字符串:--跳过检查



我正在使用django租户模式,当我尝试使用"migrate_schemas"命令我遇到一个错误。我在这里看到过类似的问题,但它们根本没有帮助。我在两个不同的应用程序上尝试过,但结果是一样的。有人知道怎么解决这个问题吗?

Traceback (most recent call last):
File "C:DjangoNewtenancymanage.py", line 22, in <module>
main()
File "C:DjangoNewtenancymanage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 401, in execute_from_command_line
utility.execute()
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagementbase.py", line 322, in run_from_argv
parser = self.create_parser(argv[0], argv[1])
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagementbase.py", line 296, in create_parser
self.add_arguments(parser)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libsite-packagestenant_schemasmanagementcommandsmigrate_schemas.py", line 20, in add_arguments
command.add_arguments(parser)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagementcommandsmigrate.py", line 28, in add_arguments
help='Skip system checks.',
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libargparse.py", line 1373, in add_argument
return self._add_action(action)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libargparse.py", line 1736, in _add_action
self._optionals._add_action(action)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libargparse.py", line 1577, in _add_action
action = super(_ArgumentGroup, self)._add_action(action)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libargparse.py", line 1387, in _add_action
self._check_conflict(action)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libargparse.py", line 1526, in _check_conflict
conflict_handler(action, confl_optionals)
File "C:UsersasyeyAppDataLocalProgramsPythonPython37libargparse.py", line 1535, in _handle_conflict_error
raise ArgumentError(action, message % conflict_string)
argparse.ArgumentError: argument --skip-checks: conflicting option string: --skip-checks

这是django-tenant-schemas中的一个错误。在阅读Django文档时,他们似乎忘记了将requires_system_checks设置为False

我相信这个拉取请求会解决问题。

在合并此修复程序之前,您可以通过运行类似的程序将Django降级到版本2来解决此问题

pip install "Django~=2.2"

或者将CCD_ 6列表中的CCD_ 5移动到CCD_。

错误:argparse.ArgumentError: argument --email: conflicting option string: --email
如果有人在这里通过django rest框架的这个错误

因此,出现此错误是因为字段'email'是必需的,但仍在模型的required_FIELDS列表中。

只要将其从REQUIRED_FIELDS中删除,它就可以工作了。

这种情况在其他属性中也是可能的。


class UserAccount(AbstractUser):

first_name = ...
last_name = ...
email = models.EmailField(_("Email address"), unique=True, blank=False)

REQUIRED_FIELDS = AbstractUser.REQUIRED_FIELDS + ['first_name', 'last_name', 'email']
class Meta(AbstractUser.Meta):
swappable = "AUTH_USER_MODEL"
verbose_name = _("UserAccount")
verbose_name_plural = _("UserAccounts")

最新更新