gpt4 book ai didi

python - 我可以在 Django 的哪个位置运行需要模型的启动代码?

转载 作者:搜寻专家 更新时间:2023-10-30 19:44:58 25 4
gpt4 key购买 nike

在 Django 启动时,我需要运行一些需要访问数据库的代码。我更喜欢通过模型来做到这一点。

这是我目前在 apps.py 中的内容:

from django.apps import AppConfig
from .models import KnowledgeBase

class Pqawv1Config(AppConfig):
name = 'pqawV1'

def ready(self):
to_load = KnowledgeBase.objects.order_by('-timestamp').first()
# Here should go the file loading code

但是,这给出了以下异常:

django.core.exceptions.AppRegistryNotReady:应用尚未加载。

那么Django中有没有地方可以在模型初始化后运行一些启动代码?

最佳答案

问题是您在文件顶部导入了 .models。这意味着,当文件 app.py 文件被加载时,Python 将在评估该行时加载 models.py 文件。但这还为时过早。你应该让 Django 正确地加载。

您可以在def ready(self) 方法中移动导入,以便在ready() 时导入models.py 文件> 由 Django 框架调用,例如:

from django.apps import AppConfig

class Pqawv1Config(AppConfig):
name = 'pqawV1'

def ready(self):
<b>from .models import KnowledgeBase</b>
to_load = KnowledgeBase.objects.order_by('-timestamp').first()
# Here should go the file loading code

关于python - 我可以在 Django 的哪个位置运行需要模型的启动代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com