This is a tornado template (say, in the file logout.html) I render on an error in the logout process:
{% if logout_error %}
Oops! The logout failed. Please close all open documents and try again
{% end %}
This can be called using
self.render("logout.html", logout_error=True)
If the logout is successful, I have to do
self.render("logout.html", logout_error=False)
If I ignore logout_error=False
, I get
NameError: global name 'logout_error' is not defined
If there are a lot of flags (which are false), the keyword arguments can pile up. Is there a way I can ask the template to consider logout_error
as False
if it does not exist?
Hacking around using locals().get()
is one way to do it. Another, bit more orthodox is using try
. Tornado template supports it, so you can:
{% try %}
{% if logout_error %}
Oops! The logout failed. Please close all open documents and try again
{% end %}
{% except %}
{% end %}
You can use
{% if locals().get('logout_error', False) %}
Substitute False
with the value you want if the property is not set.
{% if locals().get('logout_error', False) %} not works because variables not passed as in **kwargs;
{% if globals().has_key('logout_error') %} works to me because my variables are passed separately, https://groups.google.com/forum/#!topic/python-tornado/dyl50NO3yzE this page has more disscussion on this problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With