如果你看看如何Django的应用程序被加载,我认为你需要运行安装在你的应用程序models.py
或models/init.py
与不db/__init__.py
setup(set_prefix = True)通过以下方式配置Django:
正在加载设置。设置日志记录。如果set_prefix为True,则将URL解析器脚本前缀设置为FORCE_SCRIPT_NAME(如果已定义),否则设置为/。初始化应用程序注册表。该函数自动被调用:
通过Django的WSGI支持运行HTTP服务器时。调用管理命令时。在其他情况下,例如在纯Python脚本中,必须显式调用它。
应用程序注册表分为三个阶段初始化。在每个阶段,Django都会按照INSTALLED_APPS的顺序处理所有应用程序。
首先,Django将每个项目导入INSTALLED_APPS中。
如果是应用程序配置类,则Django会导入应用程序的根包,该根包由其name属性定义。如果是Python软件包,则Django将创建默认的应用程序配置。
换句话说,应用程序的根包和定义应用程序配置类的模块不应导入任何模型,即使是间接导入的模型也不应。
但是,为了避免不必要地限制INSTALLED_APPS的顺序,强烈建议您在此阶段不要导入任何模型。
一旦完成此阶段,就可以使用对应用程序配置(例如get_app_config())进行操作的API。
然后,Django尝试导入每个应用程序的models子模块(如果有)。
一旦完成此阶段,就可以使用在诸如get_model()之类的模型上运行的API。
最后,Django运行每个应用程序配置的ready()方法。