免責聲明:這是關於my previous question的問題。如何在django的模板標籤中獲取模板的渲染輸出?
我試圖在Django中編寫一個模板標籤,它將呈現自己在Mako模板的主體內。我不確定這是否可以實現,但這對我的項目非常有用,可能還有很多其他人在Django中使用Mako模板。
這裏是我的標籤定義:
def extends_mako(parser, token):
# wishlist below, this code does not work but it's what I want to achieve
template_html = ''
while (node = parser.nodelist.pop()):
template_html += node.render()
是解析器對象能夠呈現整個樹到這一點的?我現在唯一的想法是使用解析器對象來渲染(並從樹中移除)此節點之前的每個節點。然後,我會將輸出傳遞給Mako以呈現爲HTML,並將其用作我正在定義的節點的渲染函數的輸出。我的希望是,當模板上調用渲染時,它只需要渲染這個節點,因爲我的模板標籤已經完成了其他所有的編譯。目的是將extend_mako標記作爲樹中的最終標記。
我已經做了一些快速的pdb.set_trace調查,但我看不到任何有助於到目前爲止。
所以;是否有可能使用解析器對象,傳遞給模板標籤,編譯模板,並檢索最終的渲染輸出?
刪除了包含Mako標記的編輯。這個問題的答案不涉及Mako。它明確地使用django模板標記來呈現django模板的當前總輸出。 – 2011-04-11 00:13:04