По отдельность Django и плагин jQuery Template у меня работали хорошо. А вот вместе возникли небольшие проблемы. Вот только не знаю: это все из-за моей невнимательности или данная фича/бага плагина тоже сыграла свою роль.
Вначале просто data binding работал отлично и никаких проблем не предиделось. Но стоило только появиться необходимости использовать тег {{if}} из jQuery Template, встретились первые неожиданности.
Неожиданность номер раз:
Не совсем, конечно, неожиданность, а, скорее, первая меленькая проблемка. Конструкция “{{“ - совпадает с синтаксисом шаблонов в Django, от чего мы получаем ошибку что у нас неправильный темплейт. Пришлось открыть доки django и найти там что такое template tag и как им пользоваться.
В итоге мой шаблон стал выглядеть, примерно, таким образом:
Читабельность всего этого упала в разы, но стало работать. Не совсем правильно, но работать…
Неожиданность номер два:
Вместо ожидаемого результата на странице я получал нечто похожее на:
Первая мысль - в разметке страницы заэкранированы символы “{{“ и “}}”. Но, как часто это бывает - первая идея оказалась неправильной. Снова открыл доки Django и jQuery Template. Далеко не сразу заметил что в примерах jQuery Template нет пробела между “{{“ и “if”… Неожиданно, но удаление примеров помогло и все сразу заработало.
Вывод один - читать документацию (любую!) по диагонали нельзя!
Пример, уже традиционно, лежит на GitHub: https://github.com/e0ne/BlogSamples/tree/master/DjangoAndJqueryTemplate