def render_to_string(request, result, default_template, prefix=None, template_ext='html'):
templates = [default_template]
dictionary = None
# ????
# {'var': value ...}
if isinstance(result, dict):
dictionary = result
# 'template' or '/root_template'
elif isinstance(result, basestring):
templates = [result]
# 'template1', 'template2' ...
# 'template', {'var': value ...}
# 'template1', 'template2', ... {'var': value ...}
elif isinstance(result, tuple):
# ?????????
if isinstance(result[-1], dict):
templates = list(result[:-1])
dictionary = result[-1]
else:
templates = list(result)
if getattr(request, 'is_mobile', False):
templates = [t + '.mobile' for t in templates] + templates
for i in xrange(0, len(templates)):
if templates[i].startswith('/'):
templates[i] = templates[i][1:]
elif prefix:
templates[i] = prefix + templates[i]
templates[i] += '.' + template_ext
return _render_to_string(templates, dictionary, RequestContext(request))
评论列表
文章目录