gpt4 book ai didi

Django:在 "AppConfig.ready()"之后调用的信号/方法

转载 作者:行者123 更新时间:2023-12-04 12:16:17 24 4
gpt4 key购买 nike

我有一个 AppConfig.ready()实现取决于其他应用程序的准备情况。

是否有在所有应用程序后调用的信号或方法(我可以实现)ready()方法已被调用?

我知道 django 按 INSTALLED_APPS 的顺序处理信号.

但我不想强制执行 INSTALLED_APPS 的特定排序。 .

例子:

INSTALLED_APPS=[
'app_a',
'app_b',
...
]

“app_b”处理后“app_a”如何接收信号(或方法调用) AppConfig.ready() ?

(重新排序 INSTALLED_APPS 不是解决方案)

最佳答案

恐怕答案是否定的。填充应用程序注册表发生在 django.setup() .如果您查看源代码,您会发现 apps.registry.Apps.populate() 也不是 django.setup() 完成后发送任何信号。

这里有一些想法:

  • 您可以自己发送自定义信号,但这需要您在 Django 项目的所有入口点执行此操作,例如manage.py , wsgi.py以及任何使用 django.setup() 的脚本.
  • 您可以连接到 request_started并在调用您的处理程序时断开连接。
  • 如果您正在初始化某种属性,则可以将该初始化推迟到第一次访问。

  • 如果这些方法中的任何一种对您有用,显然取决于您想要实现的目标。

    关于Django:在 "AppConfig.ready()"之后调用的信号/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51892513/

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