usersconfig()函数中的ready()函数



我很难理解此代码

from django.apps import AppConfig

class UsersConfig(AppConfig):
    name = 'users'
    def ready(self):
        import users.signals

在就绪功能中导入了一些信号,但是ready(self)功能在这里做什么?和name变量在内置的关键字是吗?我研究了我什么都没掌握的文档。请说明此

的含义是什么

子类可以覆盖此方法以执行初始化任务 例如注册信号。一旦注册表就是 完全填充。

尽管您无法在AppConfig的模块级导入模型 定义了类,您可以使用任何一个 导入语句或get_model()。

,请简单地解释它。谢谢

django应用程序只是与Django框架相互作用的Python软件包。但是在某个时候,Django需要保留这些软件包的记录。例如,用于创建迁移。

要保留应用程序记录,Django在内部维护应用程序注册表,并使用从AppConfig继承的类实例(您在代码中发布的)维护记录。

就绪功能

作为文档指出,

一旦注册表完全填充。

我已经在上面解释了他们在谈论的注册表。

一些信号在就绪功能中导入,但是准备就绪(自我) 功能在这里做吗?

因为一旦准备就绪,就可以将准备就绪功能称为

def ready(self):
    import users.signals

表示文件 users.signals文件将同时导入,其中肯定会执行并注册我们的信号。

现在有意义的是,我们可以使用Ready功能来执行应用程序启动后需要立即执行的代码(例如注册信号)。

尽管您无法在AppConfig的模块级导入模型 定义了类,您可以使用任何一个 导入语句或get_model()。

表示我们不能以apps.py中的方式导入该应用程序的模型。

from users.models import SOME_MODEL

我们不能那样做。但是,如果我们需要在就绪功能中访问某些模型,则AppConfig类具有get_model功能来获取它们。

我希望它能清楚您的想法。

最新更新