jquery - plantillas - include django
¡Las etiquetas de plantilla de jquery entran en conflicto con la plantilla de Django! (5)
Hoy intento jugar con declaraciones jquery-tmpl {{if}} y {{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>
Pero como sabes, {{}} está reservado también para la plantilla django. Entonces django emitirá TemplateSyntaxError que no puede analizarlo.
¿Como puedó resolver esté problema?
actualizado:
Encontré una implementación de etiqueta personalizada <% raw%> (GPL) que funciona desde aquí.
http://www.holovaty.com/writing/django-two-phased-rendering/
Use la etiqueta de templatetag
templatetag para representar los corchetes:
{% templatetag openvariable %}each(i,cond) conditions.data{% templatetag closevariable %}
Es un poco complicado, por lo que se ha propuesto una etiqueta de plantilla sin raw
para Django 1.3.
Hay algunas soluciones mencionadas aquí:
https://github.com/nje/jquery-tmpl/issues#issue/17 - Editar: Repo viejo
https://github.com/jquery/jquery-tmpl/issues/#issue/74
Mi favorita es la etiqueta de la plantilla {% verbatim %}
que te permite crear plantillas de jQuery desde Django.
Estoy usando Django 1.3 y estoy agregando
{% raw %} this should be ignored by django''s template framework {% endraw %}
a mi archivo html
El servidor regresa con un:
Etiqueta de bloque inválida: ''raw''
También en los documentos parece que no puedo encontrar información sobre esta etiqueta de la que está hablando.
https://docs.djangoproject.com/en/1.3/ref/templates/builtins/
Aquí hay una gran información sobre el uso de plantillas de Django, usando icanhaz, pero creo que esto es lo suficientemente similar a las plantillas de JQuery.
http://tothinkornottothink.com/post/4282971041/using-jquery-templating-icanhaz-js-with-django
He encontrado que los valores predeterminados son útiles si no se admite ninguna etiqueta ''verbatim''. Se ve como esto:
{{ some_undefined_variable|default: ''....here goes the subject template....''}}
PD. Nota para los usuarios de ChicagoBoss, que no admite etiquetas "verbatim" en ErlyDTL.