的Django == 1.11.5
在项目中有未使用的文件。 例如,我使用Django登录/注销功能,但我创建了一个特殊的登录模板。
我不使用:models.py,views.py,tests.py。
但我确实为Django注册了应用程序以找到模板。
你能否告诉我是否应该删除这些未使用的文件? Django风格指南对此事保持沉默。
删除似乎合乎逻辑。但我决定要求你保持安全。
答案 0 :(得分:0)
你需要至少models.py
(即使它是空的)才能让django检测到一个应用程序。
来自documentation on applications:
应用程序注册表分三个阶段初始化。在每一个 阶段,Django按顺序处理所有应用程序 INSTALLED_APPS。
首先,Django导入INSTALLED_APPS中的每个项目。
如果是应用程序配置类,Django会导入root 应用程序的包,由其name属性定义。如果是的话 在Python包中,Django创建了一个默认的应用程序配置。
在此阶段,您的代码不应导入任何模型!
换句话说,您的应用程序的根包和模块 定义您的应用程序配置类不应导入任何 模型,甚至是间接的。
严格来说,Django允许一旦导入模型 应用程序配置已加载。但是,为了避免 对INSTALLED_APPS顺序的不必要限制,这是强烈的 建议不要在此阶段导入任何模型。
此阶段完成后,将在应用程序上运行的API 诸如get_app_config()之类的配置变得可用。
然后Django尝试导入每个模型子模块 申请,如果有的话。
您必须在应用的
models.py
中定义或导入所有模型 或models/__init__.py
。否则,应用程序注册表可能不是 此时完全填充,这可能导致ORM 故障。此阶段完成后,将在模型上运行的API get_model()变得可用。
最后Django运行每个应用程序的ready()方法 配置。
因此,如果您需要将其添加到INSTALLED_APPS
,则需要保留models.py
。将来的django版本将删除此限制。