我想为应用程序的全局范围使用一种模型。将来,可能会更改模型。我使用模型包装器在项目的根目录中创建了 backend.py 文件(我认为这是最好的解决方案,因为我可以在一个地方更改模型的声明,并且使用全局模型比使用从应用程序导入更透明)。
from project.backend import models as backend_models
class Game(backend_models.Game):
class Meta:
proxy = True
但是当我与模型建立任何关系时,我会收到以下错误:
screens.screen: 'game' has a relation with model <class 'energy.backend.Game'>, which has either not been installed or is abstract.
如果我导入project.package.Game,而不是backend.Game ,一切正常。当然,我在已安装的应用程序中有 project.backend。只有我不知道如何指出 django 在后端安装了该类,并加载了模型(来自其他应用程序)。
编辑 我在 backend.py 中解决了它:
Game = em_models.Game
但是在非模型包中扩展模型必须有相同的解决方案。