2011-10-26 178 views
3

我已經在Django中編寫了2個自定義模板標籤。 目標是在另一個內部使用一個自定義標籤。它允許嗎? 自定義 「外部」 標籤的模板看起來是這樣的:Django:嵌套自定義模板標籤

<ul> 
    {% for type in types %} 
     {% custom_internal_tag param1 %} 
    {% endfor %} 
</ul> 

其中後

無效的塊標籤渲染結果: 'custom_internal_tag',預計 '空' 或 'ENDFOR'

是否允許嵌套自定義標籤?這種錯誤的原因是什麼?

回答

9

他們肯定是允許的,但由於您的自定義標籤沒有正確定義,定位或加載,可能會出現該錯誤。

確保您的所有自定義標籤都位於您的app/templatetags目錄中,並且已正確加載,通常使用裝飾器@register

參考:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#registering-custom-filters

+1

事實上,我的外層標籤模板不包含{%負載internal_tag%}代碼。 – AlexA

+0

在我的情況下 - 當一些自定義標籤包含其他自定義標籤時說:'{%tag_from_lib1%} {%tag_from_lib2%} {%endtag_from_lib1%}' - 我必須首先加載'lib2',然後加載'lib1',必須將'{%load lib2 lib1%}'改成'{%load lib2%} {%load lib1%}''。否則,「無效塊標記」錯誤被踢入。 –

相關問題