Django и jQuery Template

Published 9/21/2011 by e0ne in Python | Web Development
Tags: ,

 

По отдельность Django и плагин jQuery Template у меня работали хорошо. А вот вместе возникли небольшие проблемы. Вот только не знаю: это все из-за моей невнимательности или данная фича/бага плагина тоже сыграла свою роль.

Вначале просто  data binding работал отлично и никаких проблем не предиделось. Но стоило только появиться необходимости использовать тег {{if}} из jQuery Template, встретились первые неожиданности.

Неожиданность номер раз:

Не совсем, конечно, неожиданность, а, скорее, первая меленькая проблемка. Конструкция “{{“ - совпадает с синтаксисом шаблонов в Django, от чего мы получаем ошибку что у нас неправильный темплейт. Пришлось открыть доки django и найти там что такое template tag и как им пользоваться.

В итоге мой шаблон стал выглядеть, примерно, таким образом:

{% templatetag openvariable %} if highlight {% templatetag closevariable %}
  <div style="background-color: ${color}">
{% templatetag openvariable %} else {% templatetag closevariable %}
  <div>
{% templatetag openvariable %} /if {% templatetag closevariable %}
  ${name}
</div>

Читабельность всего этого упала в разы, но стало работать. Не совсем правильно, но работать...

Неожиданность номер два:

Вместо ожидаемого результата на странице я получал нечто похожее на:

{{ if highlight }}
  <div style="background-color: red">
{{ else }}

Первая мысль - в разметке страницы заэкранированы символы “{{“ и “}}”. Но, как часто это бывает - первая идея оказалась неправильной. Снова открыл доки Django и jQuery Template. Далеко не сразу заметил что в примерах jQuery Template нет пробела между “{{“ и “if”... Неожиданно, но удаление примеров помогло и все сразу заработало. 

Вывод один - читать документацию (любую!) по диагонали нельзя!

Пример, уже традиционно, лежит на GitHub: https://github.com/e0ne/BlogSamples/tree/master/DjangoAndJqueryTemplate

 


Comments are closed