Tengo algunos archivos html que incluyen plantillas para ser utilizados por jQuery.tmpl. Algunas etiquetas tmpl (como {{if...}}
) se parecen a las etiquetas de plantilla de Django y causan un error TemplateSyntaxError. ¿Hay alguna manera de que pueda especificar que el sistema de plantillas de Django debe ignorar unas pocas líneas y darlas como están?¿Cómo puedo decirle a las plantillas de Django que no analicen un bloque que contiene código que se parece a las etiquetas de plantilla?
Respuesta
La forma integrada sería escapar manualmente cada elemento de la plantilla con la etiqueta templatetag
plantilla (https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#templatetag), pero sospecho que eso no es lo que quiere hacer.
Lo que realmente quiere es una forma de marcar un bloque conjunto como (en lugar de interpretables) texto sin formato, lo que requiere una nueva etiqueta personalizada. Es posible que desee revisar la etiqueta raw
aquí: http://www.holovaty.com/writing/django-two-phased-rendering/
EDIT: A partir de Django 1.5, esto es ahora manejado por el incorporado en la etiqueta verbatim
plantilla
Hay un billete abierto par para abordar esta cuestión: https://code.djangoproject.com/ticket/14502 y https://code.djangoproject.com/ticket/16318 se puede encontrar una nueva etiqueta de plantilla propuesta verbatim
a continuación:
"""
From https://gist.github.com/1313862
"""
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))
- 1. Plantillas de Mako usando las etiquetas de plantilla de Django
- 2. ¿Cómo se analizan las plantillas de django?
- 3. Cómo puedo decirle a AngularJS que "actualice"
- 4. ¿Cómo puedo decirle a Struts2 que no valide un formulario la primera vez que se muestra?
- 5. ¿Cómo le digo a gcov que ignore las líneas de código C++ que no son hittables?
- 6. ¿Cómo decirle a 'git' que 'olvide' TODAS las confirmaciones anteriores?
- 7. decirle a Django a buscar en las subcarpetas plantilla de aplicaciones
- 8. Usar literales de cadena como parámetros para las etiquetas de plantilla en las plantillas de Django
- 9. ¿Cómo accedo a las claves del diccionario que contienen guiones dentro de una plantilla de Django?
- 10. ¿Cómo es que las consultas no se agregan a Db.connection.queries de Django en las pruebas?
- 11. ¿Cómo puedo decirle a nginx que ignore silenciosamente las solicitudes que no coinciden y deje que se agote en lugar de dar 404
- 12. ¿Cómo se encuentran las etiquetas que no coinciden en HTML?
- 13. ¿Cómo puedo decirle a emacs que no rompa las líneas largas?
- 14. ¿Cómo se usan las etiquetas con las declaraciones que no son un bucle?
- 15. ¿Cómo probar las etiquetas de plantilla personalizadas en Django?
- 16. ¿Cómo puedo decirle a poedit que ignore los errores de texto que no son ASCII?
- 17. Notepad ++ que subraya las etiquetas
- 18. ¿Cómo puedo decirle a Visual Studio que no rellene un campo en el código del diseñador?
- 19. ¿Hay un IDE de C++ que maneje bien las plantillas?
- 20. Cómo puedo decirle a las especificaciones del controlador que utilicen la solicitud firmada de OAuth
- 21. Sangría, código de impresión bonita que incluye etiquetas de plantilla de Django, HTML, CSS y JavaScript
- 22. ¿Cómo puedo decirle a ProGuard que mantenga mi función que se usa para onClick?
- 23. ¿Cómo decirle a .hover() que espere?
- 24. Parece que no puedo entender las variables de tipo mezcladas con las clases
- 25. ¿Default_if_none no tiene ningún uso en las plantillas de Django?
- 26. Django plantilla de filtro de eliminar las etiquetas HTML
- 27. ¿Cómo puedo permitir que las etiquetas HTML se envíen en un cuadro de texto en asp.net?
- 28. ¿Hay alguna forma de hacer que un bloque sea opcional en la plantilla de Django?
- 29. ¿Cómo decirle a NLog que registre excepciones?
- 30. Cómo decirle a un Applescript que deje de ejecutar
creo que la etiqueta 'raw' es una solución más elegante que estos queridos. Además 'verbatim' no maneja las etiquetas de comentarios y los retornos' noparse' y la cadena vacía. – Jake
Si te sientes así, asegúrate de comentar las entradas relevantes. Es la comunidad la que decide qué características están entrando en Django. No digo que esta sea la mejor manera de hacerlo, pero esto es hacia lo que la comunidad se está moviendo actualmente. –
En una inspección más cercana, es claro que noparse cruza los tokens en el bloque y los establece a tokens de texto. – Jake