2011-01-31 4 views
3

Я создаю веб-сайт в Google приложении с помощью python. К сожалению, я не мог найти ничего относительно моей проблемы. Я должен различать переменную в соответствии с ее содержанием.Google App Engine Python If Else Usage in Html Template

Например я собираюсь отправить переменные как этот

content = { 
     'mail':session.get('user_mail',''), 
     'role':'Admin', 
     } 
render_template(self, 'index.html', content) 

И я нужен такой вид кода, чтобы понять тип пользователя, если пользователь марки «» Login или пользователь «Admin».

{% if role == 'Ordinary' %} 
    {{ role }} 
{% elif role == 'Admin' %} 
    {{ role }} 
{% endif %} 

Как я могу это сделать?

Или, может быть, есть лучший дизайн, который вы можете мне предложить.

Спасибо ...

+0

Итак, в чем проблема? Что случилось с тем, что вы опубликовали? –

+0

Зачем вам ссылка для выхода из системы с именем Login? –

+0

Извините, это просто ссылка, которую я отредактирую @Gabi Purcaru. Проблема в том, что я не могу выполнить такую ​​проверку в переменной «role». Я хочу посмотреть, есть ли это «Логин» или «Админ». Когда я использовал {% if role == 'Login'%}, он дает ошибки в отношении использования if else. В примерах кодов используется 'if', как это {% if role%}. Итак, как я могу использовать это «если». – gurkan

ответ

6

Там нет в шаблонах Джанго нет elif. Используйте что-то вроде этого:

{% if role == 'Login' %} 
... stuff 
{% else %}{% if role eq 'Admin' %} 
... stuff 
{% endif %} 

Или, с ifequal:

{% ifequal role "Login" %} 
... stuff 
{% else %}{% ifequal role "Admin" %} 
... stuff 
{% endifequal %} 
+0

TemplateSyntaxError: оператор «if» неправильно отформатирован, он дает такую ​​ошибку. – gurkan

+1

@ gurkan попробуй использовать вторую версию –

3

Поместите логику в функции вида:

content = { 
    'mail':session.get('user_mail',''), 
    'role':'Admin', 
    'show_role':True, 
    } 

или

content = { 
    'mail':session.get('user_mail',''), 
    'role':'YetAnther', 
    'show_role':False, 
    } 

Тогда ваш шаблон просто

{% if show_role %}{{role}}{% endif %} 
+0

Я пытался избежать этого, но если нет другого пути, я думаю, что я продолжу это. Спасибо .. – gurkan

+0

Зачем его избегать? Предполагается, что он будет использоваться. –

+0

«Роль» на самом деле происходит из хранилища данных. Поэтому, если я добавлю новый userRole в хранилище данных, тогда я должен соответствующим образом изменить свою логику. – gurkan