Problems with custom render functions and missing JSONP support #2

pedersen opened this Issue Sep 24, 2012 · 5 comments


None yet

2 participants


This issue existed in Trac. The original can be viewed at

This issue existed on SourceForge. The original can be viewed at


Original Author: pedersen, Original Timestamp: 2011-03-28 02:47:03.024000

Original Body: Currently, TG 2.1rc1 does not come with a templating engine for JSONP.

You can add a render function this:

from tg import json_encode, response
from tg.render import _get_tg_vars

def render_jsonp(template_name, template_vars, **kwargs):
callback = template_name or kwargs.pop('callback', None) or 'callback'
for key in _get_tg_vars():
del template_vars[key]
response.headers['Content-Type'] = 'text/javascript'
return '%s(%s)' % (template_name, json_encode(template_vars))

from myapp.config.app_cfg import base_config
base_config.render_functions['jsonp'] = render_jsonp
base_config.mimetype_lookup = {'.jsonp': 'text/javascript'}

But this reveals two shortcomings:

  1. In this case, we don't want any templating vars, and need to remove them using the undocumented function _get_tg_vars(). It would be better and more performant if the templating vars would not be included in the first place. But unfortunately, the templating engines which don't use templating vars are hard coded in TG (currently 'json' and 'amf') in two places in tg.decorators and tg.render. This should be made configurable.
  2. I don't see a way of defining a default content type for the render function, so I have to set it directly on the response object which is really not nice. The render functions should not touch the request or response objects.
  3. After fixing 1. and 2. we may think about adding a JSONP renderer to the core.

Original Author: pedersen, Original Timestamp: 2011-06-11 20:45:10.005000

Original Body: - milestone: 2.1.1 --> 2.2.0


Original Author: pedersen, Original Timestamp: 2012-08-24 01:39:59.712000

Original Body: - version: 2.1.0 --> 2.1.5

  • milestone: 2.2.0 --> 2.3.0
amol- commented Mar 3, 2014

4bad6da provides support for JSONP renderer, previous commits provided support for 1. and 2.

@amol- amol- closed this Mar 3, 2014
amol- commented Mar 3, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment