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>