1
urls.pyDjango的模板從數據庫渲染和解釋標籤
url(r'^/mailing/(?P<pk>\d+)/preview/$', PreView.as_view(), name="preview"),
models.py
class Message(models.Model):
# ... other fields ...
body = models.TextField(_("Body"), help_text=_("You can use Django <a target='_blank' href='https://docs.djangoproject.com/en/dev/ref/templates/builtins/'>template tags</a>"))
views.py
class PreView(TemplateView):
template_name = "mailing/preview.html"
def get_context_data(self, pk, **kwargs):
try:
return {"message": Message.objects.get(id=pk)}
except Message.DoestNotExist:
raise Http404
模板/郵件/ preview.html
<div id="body">{{ message.body|safe }}</div>
但是Django的templatetags沒有解釋,只呈現爲字符串。 我想在郵件正文中使用
{% now "Y-m-d" %}
標籤。將來將需要使用任何其他標籤。
我管理了兩種工作方法,他們都不滿足我。
- 使用正則表達式和替換,
- 在DB文本字段將整個模板源(insted的文件),並從它呈現一個頁面(模板)。
我也想創建templatetag它返回一個模板呈現出來的Message.body。但我不太確定這是好還是不好。
你有什麼建議嗎?
我做了完全一樣的我ñ我以前的項目。我希望有一個更優雅的方式來做到這一點。不管怎樣,謝謝你! –
我喜歡templatetag版本! –
最好使用'Template(value)'而不是無文檔的'get_template_from_string(value)'。見[這裏](http://stackoverflow.com/questions/13383194/what-is-the-difference-between-loader-get-template-from-string-and-creating-a) – MrKsn