2013-01-13 183 views
1

我在寫一個將發送HTML電子郵件的Django 1.4應用程序。我使用Django模板來呈現電子郵件內容,但我不確定如何存儲模板。哪裏存儲電子郵件模板?

我可以將它們存儲在一個電子郵件應用程序中(就像我將其他模板一樣),但使用靜態文件感覺很愚蠢。

我想過創建電子郵件模型並將模板代碼存儲爲TextField,它可以工作。

我搜索了更好的解決方案,並在Reddit上看到sendwithus.com,這是一個不錯的主意......

是否有Django的約定這樣的事情?

+2

爲什麼將模板存儲爲文件「傻」?這就是你對所有其他模板所做的事情,爲什麼它只適用於電子郵件? –

+0

'我想過要創建一個電子郵件模型並將模板代碼存儲爲一個TextField,它將起作用。「您將獲得的唯一價值是您希望最終用戶編輯模板或創建新模板;否則把它們作爲模板文件存儲的想法就不那麼愚蠢了。 –

+1

@BurhanKhalid我也可以自己更新和調整內容,而不需要代碼部署,這似乎是有益的。 – bvanvugt

回答

0

一般的方法是將電子郵件模板全局存儲在項目模板文件夾或電子郵件應用程序的模板文件夾中。如果您構建可重複使用的應用程序,則可以在應用程序模板文件夾中提供電子郵件模板的示例,但可以通過全局項目模板覆蓋它們(在TEMPLATE_READERS中的應用程序模板之前優先考慮項目模板,通常是django中的默認設置)。

我認爲你其他的想法是如此簡單的東西矯枉過正。

+0

帶有示例的可重複使用的電子郵件應用程序似乎是個不錯的主意。但是你認爲在源代碼之外編輯這些內容沒有任何價值? – bvanvugt

+0

更好的說它應該是可寫的/如果你在你的項目模板文件夾中創建一個電子郵件模板(遵循與你的電子郵件應用程序相同的目錄結構),它將簡單地使用這個模板而不是你提供的例子。 –

+1

啊,呃。我接受這個答案是對原始問題的一種很好的,Django特有的方法。但我不一定確信交易電子郵件內容應該被硬編碼 - 請參閱有關問題的評論。 – bvanvugt