Подтвердить что ты не робот

Теги шаблона jquery конфликтуют с шаблоном Django!

Сегодня я пытаюсь играть с операторами jquery-tmpl {{if}} и ​​{{else}}.

<script id="mission-dialog" type="text/x-jquery-tmpl">
    <h3>${name}</h3>
    <p>${description}</p>
    <ul>
        {{each(i,cond) conditions.data}}
        <li>
            <img src="${cond.image}"/>
            <h4>${cond.name}</h4>
            <p class="status">${cond.status.value}/${cond.status.max}</p>
        </li>
        {{/each}}
    </ul>
</script>

Но, как вы знаете, {{}} зарезервирован также для шаблона django. Таким образом, django испускает TemplateSyntaxError, что он не может его разобрать.

Как я могу решить эту проблему?


обновление:

Я нашел здесь рабочую <% raw% > настраиваемый тег (GPL).

http://www.holovaty.com/writing/django-two-phased-rendering/

4b9b3361

Ответ 1

Используйте тег templatetag, чтобы отобразить скобки:

{% templatetag openvariable %}each(i,cond) conditions.data{% templatetag closevariable %}

Это немного странно, поэтому для Django 1.3 был предложен тег шаблона raw.

Ответ 2

Есть несколько решений, упомянутых здесь:

https://github.com/nje/jquery-tmpl/issues#issue/17 - Изменить: Старый репо

https://github.com/jquery/jquery-tmpl/issues/#issue/74

Мой любимый тег шаблона {% verbatim %}, который позволяет вам создавать шаблоны jQuery из Django.

Ответ 3

Я использую Django 1.3 и добавляю

{% raw %} this should be ignored by django template framework {% endraw %}

в мой html файл.

Сервер возвращается с:

Недопустимый тег блока: 'raw'

Также в документах я не могу найти информацию об этом теге, о котором вы говорите.

https://docs.djangoproject.com/en/1.3/ref/templates/builtins/

Ответ 5

Я нашел значения по умолчанию полезными, если не поддерживается тег 'verbatim'. Выглядит так:

{{ some_undefined_variable|default: '....here goes the subject template....'}}

PS. Примечание для пользователей ChicagoBoss, который не поддерживает тег 'verbatim' в ErlyDTL.