2009-08-13 4 views
0

Ну, я не понимаю, что jeje .... как плохо оценить переменную с {% if%} в шаблоне?Django, тег {% if%} оценивает

им пытаются это

{% if variable > 0 %} or {% if variable != 0 %} 

, но ... я получил ошибки :(

Благодарности

+1

Система шаблонов Django разработан специально для поощрения как мало логики, насколько это возможно, чтобы быть в шаблонах, поэтому сначала система тегов может показаться ограниченной. Идея состоит в том, чтобы переключить свое мышление на большее количество состояний MVC, где ваши данные были подготовлены до того, как он попадет в ваш шаблон. –

+0

jinja templating engine позволяет это и хорошо работает в пределах django – Evgeny

ответ

4

Заканчивать Джанго смарт-тег, если шаблон http://simonwillison.net/2009/Mar/3/smartif/ http://www.djangosnippets.org/snippets/1350/

Он заменяет встроенный, если тег и позволяет выполнять операции сравнения.

+0

Wade спасибо вам, но им новые с Django, и я не знаю, где плохо поставить код :( в сердцевине, в моих взглядов, моделей и т.д. ?? Я думаю, что мне нужен сниппет – Asinox

+0

Я сделал это, спасибо за фрагмент – Asinox

+0

Вы можете поместить его в ядро, но это может вызвать проблемы, если вы обновите ядро ​​django. У меня есть приложение под названием «utils», которое я храню различные подпрограммы и помощники, которые я использую в разных проектах. Я просто добавил код smart-if в папку templatetags этого приложения. – Wade

0

Вы должны использовать

{% ifnotequal... 
{% ifequal... 

и т.д. :)

Здесь все: http://docs.djangoproject.com/en/dev/topics/templates/#topics-templates

+1

Вы просто указали на общий обзор шаблонов, полный тег и список фильтров можно найти здесь: http://docs.djangoproject.com/ru/dev/ref/templates/builtins/ # ref-templates-builtins-tags –

+0

проблема в том, что если я хочу это: {% ifnotequal variable 0%}, но если переменная равна -1, то это «true», и я не хочу, чтобы это отрицательное значение было «истинным». и то же самое для {% ifequal%} – Asinox

0

Вместо постоянной публикации здесь каждый раз, когда у вас есть небольшая проблема, вы должны прочитать отличную документацию Django. В частности, в документах шаблонов есть очень хорошее объяснение того, почему то, что вы пробовали, не допускается.

В этом случае вы могли бы воспользоваться тем фактом, что в Python 0 такое же, как False. Таким образом, вы могли бы

{% if variable %} 

или

{% if not variable %} 

В противном случае, используйте {% ifequal %} и {% ifnotequal %} как объясняет MARIZ.

+1

«Малый» - это вопрос мнения. Верьте или нет, есть люди в мире, которые не так сильны, как вы. Это все относительно. Джоэл Спольски конкретно заявил, что то, что он предполагал для этого сайта, должно было отвечать на все вопросы, даже самые, казалось бы, тривиальные. Тот факт, что в настоящее время это задано, означает, что его, возможно, не придется снова спрашивать. Вы могли бы потратить то время, когда раньше вы жаловались в начале своего ответа, вместо этого использовали свои права на редактирование, чтобы улучшить свой вопрос. –

+2

Я думаю, что Джоэл Спольский не согласен с вашим утверждением: «Не ставьте вопрос, если он слишком прост, читайте документы». –

+1

им жаль, ребята, первое, что я делаю, читает документы, верю или нет, но в документах нет ничего о операторах в {% if%}, я не знаю, ошибочно ли им. кто сказал, что в моем случае -1 верно? Мне нужно 0 или> 0, но если я приведу значение из базы данных, если значение равно -1, то {% if variable%} истинно. Имей извините. – Asinox

Смежные вопросы