Improved the templated decorator in the documentation as recommended by Thadeus Burgess on the mailinglist

This commit is contained in:
Armin Ronacher 2010-08-13 23:37:57 +02:00
parent 6b5ba14521
commit a3f78af870

View file

@ -120,7 +120,9 @@ As you can see, if no template name is provided it will use the endpoint
of the URL map with dots converted to slashes + ``'.html'``. Otherwise of the URL map with dots converted to slashes + ``'.html'``. Otherwise
the provided template name is used. When the decorated function returns, the provided template name is used. When the decorated function returns,
the dictionary returned is passed to the template rendering function. If the dictionary returned is passed to the template rendering function. If
`None` is returned, an empty dictionary is assumed. `None` is returned, an empty dictionary is assumed, if something else than
a dictionary is returned we return it from the function unchanged. That
way you can still use the redirect function or return simple strings.
Here the code for that decorator:: Here the code for that decorator::
@ -138,6 +140,8 @@ Here the code for that decorator::
ctx = f(*args, **kwargs) ctx = f(*args, **kwargs)
if ctx is None: if ctx is None:
ctx = {} ctx = {}
elif not isinstance(ctx, dict):
return ctx
return render_template(template_name, **ctx) return render_template(template_name, **ctx)
return decorated_function return decorated_function
return decorator return decorator