www rest_api highchart full example javascript django django-templates javascript-framework mustache

javascript - rest_api - highstock js



Django y el bigote usan la misma sintaxis para la plantilla (7)

Intento contrabandear la plantilla HTML en el HTML para moustache.js, sin embargo, el motor de plantillas django elimina todos los marcadores de posición que deberían salir como están al frente.

La plantilla se incluye en HTML de esta manera:

<script type="text/x-mustache-template" data-id="header_user_info"> <div id="header_user_info"> <div id="notification">0</div> <a href="#">{{username}}</a> </div> </script>

y puedo obtener la plantilla HTML ejecutando $ (el) .html (), y generar html usando Mustache.to_html (temp, data);

Podría poner toda la plantilla en otro archivo estático y servir desde CDN, pero luego sería difícil rastrear a dónde pertenece la plantilla, y al menos una solicitud http adicional.


Puede usar el {% templatetag %} templatetag para imprimir los caracteres que normalmente procesaría Django. Por ejemplo:

{% templatetag openvariable %} variable {% templatetag closevariable %}

Resultados en lo siguiente en su HTML:

{{ variable }}

Para obtener una lista completa de los argumentos, consulte: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#templatetag


Puede usar la etiqueta delimitadora set mustache.js incorporada para cambiar las etiquetas predeterminadas que usa el bigote.

es decir

{{=<% %>=}}

ahora puedes hacer esto

<% variable %>


Si usas django 1.5 y más reciente:

{% verbatim %} {{if dying}}Still alive.{{/if}} {% endverbatim %}

Si está atascado con django 1.2 en appengine, extienda la sintaxis de django con el comando de plantilla textual como este ...

from django import template register = template.Library() class VerbatimNode(template.Node): def __init__(self, text): self.text = text def render(self, context): return self.text @register.tag def verbatim(parser, token): text = [] while 1: token = parser.tokens.pop(0) if token.contents == ''endverbatim'': break if token.token_type == template.TOKEN_VAR: text.append(''{{'') elif token.token_type == template.TOKEN_BLOCK: text.append(''{%'') text.append(token.contents) if token.token_type == template.TOKEN_VAR: text.append(''}}'') elif token.token_type == template.TOKEN_BLOCK: text.append(''%}'') return VerbatimNode(''''.join(text))

En su archivo (python 2.7, HDR) use:

from django.template import Context, Template import django django.template.add_to_builtins(''utilities.verbatim_template_tag'') html = Template(blob).render(Context(kwdict))

En su archivo (python 2.5) use:

from google.appengine.ext.webapp import template template.register_template_library(''utilities.verbatim_template_tag'')

Fuente: http://bamboobig.blogspot.co.at/2011/09/notebook-using-jquery-templates-in.html


Simplemente puede cambiar las etiquetas:

Mustache.tags = [''[['', '']]''];


Tengo el mismo problema, pero usando

{% templatetag openvariable %} variable {% templatetag closevariable %}

es demasiado verboso para mi Acabo de agregar una etiqueta de plantilla personalizada muy simple:

@register.simple_tag def mtag(tagContent): return "{{%s}}" % tagContent

Para que ahora pueda escribir:

{% mtag "variable" %}


Tengo el mismo problema, por lo que la mayoría de las veces mis variables forman parte de una cadena traducible.

{% trans "The ball is {{ color }}" %}

Puede usar el trans templatetag incluso si no ofrece i18n.


Trate de usar django-mustachejs

{% load mustachejs %} {% mustachejs "main" %}

Django-mustachejs generará lo siguiente:

<script>Mustache.TEMPLATES=Mustache.TEMPLATES||{};Mustache.TEMPLATES[''main'']=''<<Your template >>'';</script>