【发布时间】:2011-12-01 11:19:24
【问题描述】:
urls.py
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
template/mailing/preview.html
<div id="body">{{ message.body|safe }}</div>
然而 django 模板标签不被解释,只呈现为字符串。 我想用一个
{% now "Y-m-d" %}
消息正文中的标记。将来需要使用任何其他标签。
我已经管理了两种工作方法,它们都不能让我满意。
- 使用正则表达式和替换,
- 将整个模板源放入 db TextField(文件的插入)中,并从中呈现页面(模板)。
我也在考虑创建从 Message.body 中返回渲染模板的模板标签。但是我不太确定它是好是坏。
你有什么建议吗?
【问题讨论】:
标签: django templates tags rendering