我有一些html文件,其中包含jQuery.tmpl要使用的模板。一些tmpl標籤(如{{if...}}
)看起來像Django模板標籤,並導致TemplateSyntaxError。有沒有一種方法可以指定Django模板系統應該忽略幾行並完全按照原樣輸出它們?如何告訴Django模板不要分析包含看起來像模板標籤的代碼的塊?
13
A
回答
20
內置的方法是用templatetag
模板標籤(https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#templatetag)手動轉義每個模板項目,但我懷疑這不是你想要做的。
你真正想要的是一種將整塊標記爲原始(而不是可解釋)文本的方法,這需要一個新的自定義標記。您可能要檢查出raw
標籤瀏覽:http://www.holovaty.com/writing/django-two-phased-rendering/
編輯:由於Django的1.5,這是現在所處理的內置verbatim
模板標籤
5
有一對夫婦公開售票來解決這個問題: https://code.djangoproject.com/ticket/14502和https://code.djangoproject.com/ticket/16318 您可以在下面找到一新的模板標籤verbatim
:
"""
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. Django - 包含模板標籤
- 2. 包含模板標籤的Django模板變量,前{{{%some_tag%}}}
- 3. Django - 包含模板中的塊標籤被調用模板覆蓋
- 4. Django包含html而不解析模板標籤
- 5. Django模板標籤,生成模板塊標籤
- 6. 如何告訴Angular不要編譯模板的某些部分?
- 7. 分配變量子模板中{%包含%}標籤的Django
- 8. Django:看起來不像模塊路徑
- 9. Django告訴我模板不存在
- 10. 如何在Django的靜態文件中包含模板標籤?
- 11. 如何在不解析Django中的模板標籤的情況下創建包含模板文件的模板標籤?
- 12. 包含來自Jinja模板的塊
- 13. 如何解析包含「trans」標籤的字符串作爲Django中的模板?
- 14. 我的django看起來像不能識別模板
- 15. Smarty3塊包含的模板
- 16. 模板標籤Django
- 17. Django模板標籤
- 18. Django - 模板標籤
- 19. 包含標記的Django模板錯誤
- 20. django模板的摘要標籤
- 21. 如何鏈{%包含%} Django的模板
- 22. Django模板:包括兒童的首要塊模板通過擴展模板
- 23. 使用「包含」模板中的「靜態」模板標籤?
- 24. Django-admin.py startproject - 模板標籤模板
- 25. Django模板包含一個模板,其中包含來自視圖的變量
- 26. Django的 - 模板包含模型的「表」
- 27. Django的 - 模板鏈標籤
- 28. 模板標籤中的Django
- 29. Django的模板替代`with`標籤
- 30. Django模板標籤/ jQuery的迭代?
我想'raw'標籤比這些的一個更好的解決方案。加'verbatim'不處理註釋標記和'noparse'返回和空字符串。 – Jake
如果您覺得這樣,您應該確保對相關的門票發表評論。這是社區決定哪些功能將進入Django。我並不是說這是做這件事的最好方式,但這是社羣目前正在採取的行動。 –
仔細觀察,很明顯,noparse會遍歷塊中的令牌,並將它們全部設置爲文本令牌。 – Jake