2013-01-13 240 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