2017-05-27 67 views
1

(首先對不起我的英語不好)Django - 我如何設置數據庫設置文件中的值?

我需要知道是否存在任何方式來使用存儲在數據庫中的一些數據設置設置文件中的某些值。

例如郵件配置

EMAIL_HOST = '' 
EMAIL_HOST_USER = '' 
EMAIL_HOST_PASSWORD = '' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 

我想,以填補使用我保存,我有在企業應用程序設置模型中的數據變量。

但像設置文件在服務器啓動之前被收穫,那麼我不知道是否存在任何方式來做到這一點。

希望你能理解我。

謝謝!

回答

0

據我所知,Django設置應該是不可變的。這有多個原因,最明顯的是Django不知道服務器的執行模型(prefork /多線程)。

另外,您無法從Django模型加載設置,因爲在ORM中使用任何內容之前需要先加載設置。這意味着你不能從數據庫設置你的電子郵件地址,你需要在settings.py文件本身設置電子郵件(硬編碼)。

+0

多數民衆贊成在我的想法......但今天我必須改變我的郵件服務器,然後我想......如果某些客戶想要或必須做同樣的事情,也許我可以添加一些公司配置,並把那裏的郵件值...也許有一些應用程序的郵件,可以從數據庫配置...我不知道! – marcosgue

+1

@marcosgue,我發現了這樣的問題,https://stackoverflow.com/questions/22281865/dynamic-django-mail-configuration。希望它可以幫助你。 –

+0

這意味着,您可以使用send_mail,您必須創建自己的電子郵件後端,它使用您的自定義設置,然後將其傳遞給連接屬性中的send_mail。 –

0

電子郵件主機必須硬編碼,如果你設置了某些與你自己的邏輯有關的東西,你可以試試django-constance。或者你可以嘗試從txt讀取設置,我不知道它是否有用,但它是一個有價值的方法。

相關問題