2016-09-16 183 views
1

我有Django項目。我需要將應用程序添加到INSTALLED_APPS或使用其他python腳本更改模板配置。什麼是最好的方式來做到這一點?以編程方式修改Django設置

我有幾個想法。

  • 打開settings.py作爲來自Python的文本文件並對其進行修改。似乎是車輪改造,並打開包含許多錯誤(逃避等)的框。
  • 使用Python模塊,如ast,但它是非常低的水平和更多的讀訪問(我需要寫回數據)。
  • 使用一些Django工具(我不確定這樣的工具是否存在)。

這樣做的最佳方法是什麼?

PS:Parse a .py file, read the AST, modify it, then write back the modified source code是相關的,但它不是Django的特定和相當古老。

+2

你能描述一下你想通過改變設置來實現嗎? –

+0

除了增加這個參數之外還有更多的參與,你仍然需要在整個代碼中引用它,並處理不存在的情況。只需不要這樣做,如果你需要的應用程序正常導入 – Sayse

回答

0

更好的(意味着更安全和乾淨)的方法是生成一個python模塊,然後在settings.py中使用它。例如,有你的腳本來創建這些內容的文件:

ADDITIONAL_APPS = [ 
    'foo', 
    'bar', 
] 

保存它,比方說,additional_settings.py並把它放在同一個目錄settings.py,然後在settings.py添加線條

from .additional_settings import ADDITIONAL_APPS 

... 

INSTALLED_APPS += ADDITIONAL_APPS 

這樣,您不必解析任何東西,也不會冒險破壞現有設置。

讓我知道它是否有效