Login

Make anything into a template

Author:
realmac
Posted:
February 6, 2008
Language:
Python
Version:
.96
Tags:
template templating
Score:
1 (after 1 ratings)

This is a quick and dirty way to reuse the Django templating system for your own ends. Just pop in the familiar Django template syntax into whatever content you like and any chunk of content can be a template. This is great if you need to wrap data in HTML (as in for a mass email). The best part about this is that your "template" can now be stored in a database, instead of just in the file system.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#views.py
from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext, Context, Template
from models import DocumentTemplate
from django.utils.safestring import mark_safe

def printable_form(self, object_id, template_id):
    """Get a `template` and drop information into it."""
    doc_template = DocumentTemplate.objects.get(pk=template_id)
    result = get_object_or_404(SomeInfo, pk=object_id)
    t = Template(doc_template.content)
    c = Context({'result': result,})
    final_html = t.render(c)
    final_html = mark_safe(final_html)
    return render_to_response('printable.html', {'final_html':final_html}, RequestContext(request))

More like this

  1. Markup Selection in Admin by jonathan 7 years, 6 months ago
  2. Markdown and Syntax Highlighting in Django by blinks 7 years, 11 months ago
  3. Default Template Loading by nirvdrum 7 years, 7 months ago
  4. Jinja2 integration + application specific functions/filters/tests by hasenj 6 years, 5 months ago
  5. Repeat blocks with new context / simple Jinja-like macro system by miracle2k 7 years, 7 months ago

Comments

Please login first before commenting.