Python _uuinit_uu.py中的自定义函数导致Django应用程序不';尚未安装错误
我有如下设置Python _uuinit_uu.py中的自定义函数导致Django应用程序不';尚未安装错误,python,django,Python,Django,我有如下设置 Tasks |__ __init__.py |__ a.py |__ b.py |__ c.py ... 在_uinit__u.py文件中 from .a import custom1, custom2 from .b import custom3, custom4 我在Tasks中编写了一个函数,要求将Tasks添加为已安装的应用程序 但是,自定义函数会引发django.core.exc
Tasks
|__ __init__.py
|__ a.py
|__ b.py
|__ c.py
...
在_uinit__u.py文件中
from .a import custom1, custom2
from .b import custom3, custom4
我在Tasks中编写了一个函数,要求将Tasks添加为已安装的应用程序
但是,自定义函数会引发django.core.exceptions.AppRegistryNotReady:“应用程序尚未加载。”
回溯会导致一个自定义函数尝试导入的点
从django.contrib.auth.models导入用户
为什么会发生这种情况?有没有一种方法可以在不将自定义函数移出uuu init uuuu.py文件的情况下修复此错误?Django初始化的顺序很好 1.)首先Django导入已安装应用程序中的每个项目 在此阶段,您的代码不应导入任何模型强> 3.)最后,Django运行每个应用程序配置的
ready()
方法
进一步如AppConfig.ready()
子类可以重写此方法以执行初始化任务
例如记录信号。注册一完成就调用它
人满为患
class RockNRollConfig(AppConfig):
# ...
def ready(self):
# importing model classes
from .models import MyModel # or...
MyModel = self.get_model('MyModel')
# registering signals with the model's string label
pre_save.connect(receiver, sender='app_label.MyModel')
您可以考虑使用函数的内部来代替导入代码< >要求准备> <代码> false
但是我不确定它是否会根据您的用例工作您能分享完整的回溯吗?当您试图在加载模型之前访问模型时,通常会发生此错误。此函数的作用是什么?您可能希望改用AppConfig和import in ready方法。但是这信息太少,无法理解您到底在导入什么完整的回溯导致某些函数试图使用django.auth用户模型,但我不确定django初始化的顺序是什么阻止了这种情况的发生..将回溯添加到问题中,在加载所有应用程序之前,您正在使用模型执行某些操作