2017-10-09 29 views
0

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会导入由其name属性定义的应用程序的根 包。如果它是一个 Python包,Django会创建一个默认的应用程序配置。

在这个阶段,你的代码不应该导入任何模型!

换句话说,您的应用程序的根包和 定义您的应用程序配置类的模块不应导入任何 模型,甚至间接导入。

严格地说,Django允许在加载应用程序配置后导入模型。但是,为了避免 对INSTALLED_APPS的顺序的不必要的限制,建议在此阶段不要导入任何模型,强烈推荐使用 。

此阶段完成后,运行在应用程序 配置(如get_app_config())上的API将变得可用。

然后Django尝试导入每个 应用程序的模型子模块(如果有的话)。

您必须在您的应用程序的models.pymodels/__init__.py中定义或导入所有型号。否则,此时应用程序注册表可能不会完全填充 ,这可能导致ORM到 发生故障。

此阶段完成后,在诸如 get_model()等模型上运行的API将变得可用。

最后Django运行每个应用程序 配置的ready()方法。

所以,如果你需要将它添加到INSTALLED_APPS,你需要保持models.py。这个限制将在未来的Django版本中被删除。

+0

你能告诉我这是否是一个记录的功能?或者它只是生活经验。 – Michael

相关问题