2012-08-08 45 views
0

我需要自定義模板標籤裏面的model.TextField值。對象文本字段中的值與"lorem ipsum dolor {% mytag %}"類似,但「mytag」不呈現爲模板標記。它在庫中作爲標籤註冊並加載到頁面上,我有{{ object.textfield|safe }}過濾器。它有可能嗎?模板標籤裏面的對象TextField

回答

1

由於Django的模板引擎可以很容易地在任何地方使用你的代碼,你應該能夠做這樣的事情:

from django.template import Context, Template 
rendered = Template("{% load your_tag_library %}", 
    object.textfield).render(Context()) 

而不是從它使得它從一個字符串像一個文件渲染模板:

"{% load your_tag_library %}lorem ipsum dolor {% mytag %}" 

該代碼可以用於您的視圖或作爲您的模型的方法。請注意,Context是空的,您可能還需要將帶有模板變量的字典傳遞給它。

此外,要在模板中直接處理它,您可以編寫一個自定義的模板標籤,它可以做類似的事情,基本上是一個templatetag,用於爲模板標籤分析字符串。

+0

非常感謝Dirk – Goran 2012-08-10 20:24:50