2017-10-09 69 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

相關問題