Mam kilka plików html, które zawierają szablony, które będą używane przez jQuery.tmpl. Niektóre znaczniki tmpl (np. {{if...}}
) wyglądają jak tagi szablonów Django i powodują TemplateSyntaxError. Czy istnieje sposób, w jaki mogę określić system szablonów Django powinien zignorować kilka linii i wypisać je dokładnie tak, jak są?Jak mogę powiedzieć szablonom Django, aby nie parsować bloku zawierającego kod, który wygląda jak znaczniki szablonów?
Odpowiedz
Wbudowany sposób polegałby na ręcznym opuszczaniu każdego elementu szablonu za pomocą znacznika szablonu templatetag
(https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#templatetag), ale podejrzewam, że nie jest to coś, co chcesz zrobić.
To, czego naprawdę chcesz, to sposób oznaczania całego bloku jako tekstu surowego (a nie interpretowalnego), który wymaga nowego niestandardowego tagu. Może chcesz sprawdzeniu raw
tag tutaj: http://www.holovaty.com/writing/django-two-phased-rendering/
EDIT: Jak Django 1.5, to jest teraz obsługiwane przez wbudowany w tagu verbatim
szablonu
Istnieje kilka otwarty bilet do rozwiązania tego problemu: https://code.djangoproject.com/ticket/14502 i https://code.djangoproject.com/ticket/16318 można znaleźć proponowany nowy szablon tag verbatim
poniżej:
"""
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. Jak mogę powiedzieć Django, aby zapisać moją testową bazę danych?
- 2. Jak mogę powiedzieć ORM Django, aby odwrócić kolejność wyników zapytania?
- 3. Jak mogę powiedzieć kompilatorowi, aby nie tworzył obiektu tymczasowego?
- 4. Jak powiedzieć Django, aby nie buforował danych HTTP POST?
- 5. Jak mogę powiedzieć układowi robot, aby nie rejestrował słowa kluczowego?
- 6. Jak mogę powiedzieć RavenDB, aby ignorował właściwość, ale nie WebAPI?
- 7. Jak mogę powiedzieć Mutt, aby nie przechowywać wysłanych wiadomości?
- 8. Jak powiedzieć RadioButtonList, aby NIE generować tabeli
- 9. Jak powiedzieć bash, aby nie rozszerzać zmiennej $ _?
- 10. Jak mogę powiedzieć podprocesowi, aby przestał uciekać od moich ofert?
- 11. przykładowy kod, aby pokazać jak Java zsynchronizowane bloku działa
- 12. Jak mogę powiedzieć Scrapy, aby indeksował tylko linki wewnątrz Xpath?
- 13. Jak mogę powiedzieć, że mój kod działa w trybie Mono?
- 14. Jak mogę powiedzieć visualvm, gdzie znaleźć mój kod źródłowy?
- 15. Django get_or_create, jak powiedzieć popełnić = False
- 16. Jak mogę powiedzieć angularjs do „odświeżenia”
- 17. Jak mogę uniknąć znaków specjalnych LaTeX wewnątrz szablonów Django?
- 18. XMLEventWriter: jak mogę powiedzieć, aby pisać puste elementy?
- 19. Jak mogę powiedzieć Operacje w Google, aby przesyłać dźwięk?
- 20. Jak powiedzieć valgrind, aby zapamiętywać rozwidlone procesy?
- 21. Jak dołączyć znaczniki ul wewnątrz bloku kodu brzytwy?
- 22. Jak zachować kod, który NIE DZIAŁA?
- 23. Jak mogę powiedzieć WebClient HtmlUnit, aby pobrać obrazy i css?
- 24. Jak wyświetlić kod (nie wyprowadzać), który generuje .Net T4?
- 25. Jak mogę powiedzieć, że `ConcurrentDictionary.GetOrAdd` nie dodaje wartości?
- 26. Jak mogę Parsować Json w funkcji Azure
- 27. Jak mogę "powiedzieć" kompilatorowi C, że kod nie powinien być zoptymalizowany?
- 28. email szablonów w Django
- 29. Uzyskaj nazwę arkusza programu Excel zawierającego kod
- 30. Krótki kod Pythona, aby powiedzieć "Wybierz niższą wartość"?
myślę, że 'tag raw' jest bardziej eleganckie rozwiązanie niż tych co. Plus 'verbatim' nie obsługuje znaczników komentarza i' noparse' zwraca i pusty ciąg znaków. – Jake
Jeśli uważasz, że tak, powinieneś koniecznie wypowiedzieć się na temat odpowiednich biletów. To społeczność decyduje, jakie funkcje będą wprowadzane w Django. Nie twierdzę, że jest to najlepszy sposób na zrobienie tego, ale to jest to, do czego obecnie zmierza społeczność. –
Przy bliższym przyjrzeniu się jest jasne, że noparse przemiesza tokeny w bloku i ustawia je wszystkie na Tokeny Tekstu. – Jake