0

値の中にカスタムテンプレートタグが必要model.TextFieldです。オブジェクトテキストフィールドの値は次のようになります"lorem ipsum dolor {% mytag %}"が、「mytag」はテンプレートタグとしてレンダリングされません。それはタグとしてライブラリに登録され、ページにロードされ、私は{{ object.textfield|safe }}フィルターを持っています。それは可能ですか?

4

1 に答える 1

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は空であることに注意してください。テンプレート変数を含むdictを渡すこともできます。

さらに、テンプレートで直接処理するために、同様のことを行うカスタムtemplatetagを作成できます。これは、基本的に、templatetagの文字列を解析するtemplatetagです。

于 2012-08-09T19:47:31.070 に答える