remove render_to from utils

This commit is contained in:
slav0nic 2012-04-26 13:42:35 +03:00
parent 30199706e7
commit f988bd6329

View file

@ -23,58 +23,6 @@ from djangobb_forum import settings as forum_settings
_SMILES = [(re.compile(smile_re), path) for smile_re, path in forum_settings.SMILES]
def render_to(template):
"""
Decorator for Django views that sends returned dict to render_to_response function.
Template name can be decorator parameter or TEMPLATE item in returned dictionary.
RequestContext always added as context instance.
If view doesn't return dict then decorator simply returns output.
Parameters:
- template: template name to use
Examples:
# 1. Template name in decorator parameters
@render_to('template.html')
def foo(request):
bar = Bar.object.all()
return {'bar': bar}
# equals to
def foo(request):
bar = Bar.object.all()
return render_to_response('template.html',
{'bar': bar},
context_instance=RequestContext(request))
# 2. Template name as TEMPLATE item value in return dictionary
@render_to()
def foo(request, category):
template_name = '%s.html' % category
return {'bar': bar, 'TEMPLATE': template_name}
#equals to
def foo(request, category):
template_name = '%s.html' % category
return render_to_response(template_name,
{'bar': bar},
context_instance=RequestContext(request))
"""
def renderer(function):
def wrapper(request, *args, **kwargs):
output = function(request, *args, **kwargs)
if not isinstance(output, dict):
return output
tmpl = output.pop('TEMPLATE', template)
return render_to_response(tmpl, output, context_instance=RequestContext(request))
return wrapper
return renderer
def absolute_url(path):
return 'http://%s%s' % (Site.objects.get_current().domain, path)