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 .Однако я не совсем уверен, будет ли это хорошо или неправильно.
У вас есть какие-либо предложения?