我很难理解此代码
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
功能来获取它们。
我希望它能清楚您的想法。