【问题标题】:Python3 - Django2 - TypeError: __init__() missing 1 required positional argument: 'on_delete'Python3 - Django2 - 类型错误:__init__() 缺少 1 个必需的位置参数:'on_delete'
【发布时间】:2020-04-04 15:49:13
【问题描述】:

我最近将我的项目从 python2 迁移到 python3,它有数百个 ForeignKey 关系。

使用解决方案逐行添加 on_delete 参数是不可能的。解决此错误的替代方法是什么?

我已尝试编辑库,我可以在其中添加具有默认值的 init 函数中的参数,但有时看起来不像捕获它。

【问题讨论】:

标签: python django python-3.x django-2.0


【解决方案1】:

使用解决方案逐行添加on_delete参数是不可能的

任何体面的代码编辑器都应该使这个操作相对容易,从长远来看,这仍然是唯一合理的解决方案。

与此同时,您可以just monkeypatch models.ForeignKey.__init__ 而不是直接弄乱 Django 的源代码 - 只需确保在加载任何应用程序 models.py 之前应用了您的 monkeypatch。但这必须被视为临时解决方法,而不是可行的解决方案。

【讨论】:

  • 现在我已经编辑了源库,同时找出了一个正则表达式来帮助解决这个问题。它不会是一个简单的正则表达式。
猜你喜欢
  • 2023-03-19
  • 2020-10-03
  • 2018-06-04
  • 1970-01-01
  • 2022-01-11
  • 2021-07-06
  • 2020-01-29
  • 2017-10-30
相关资源
最近更新 更多