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