render_to_string

Posted: April 12th, 2010 | Author: Davo | Filed under: Django | Tags: | No Comments »

The render_to_string is similar to render_to_response but instead of sending the data to the response object it just saves the result as a string object.
This can be then used as normal string.

Example:

from django.template.loader import render_to_string
response = render_to_string('the_template.html', { 'varname': 'value' })

Be carefull, you CAN NOT do the following:

from django.template.loader import render_to_string
def my_view(request):
    ...
    return render_to_string('the_template.html', { 'varname': 'value' }) # CRASH...!

But you CAN DO this instead:

from django.http import HttpResponse
from django.template.loader import render_to_string
def my_view(request):
    ...
    return HttpResponse( render_to_string('the_template.html', { 'varname': 'value' }) )

TEMPLATE_STRING_IF_INVALID

Posted: April 8th, 2010 | Author: Davo | Filed under: Django | Tags: | No Comments »

A quick way to track down the non existing variables in the template is to use the TEMPLATE_STRING_IF_INVALID.

1) set TEMPLATE_STRING_IF_INVALID in settings.py

TEMPLATE_STRING_IF_INVALID = 'VARIABLE ERROR'

2) in any template/html file:

{{ variable_which_does_not_exist }}

The variable_which_does_not_exist will be replaced by ‘VARIABLE ERROR’

Read more about how django handles invalid template variables