25

1.html、2.html ..etcという名前のhtmlファイルが10個あります。変数に応じて、特定のファイルをテンプレートに含める必要があります。

例えば

{% if foo.paid %}
    {% include "foo/customization/{{ foo.id }}.html" %}
{% endif %}

これは可能ですか?includeタグが機能する前にfoo.idが変換されていないためです。その結果、エラーが発生します。この問題を別の方法で処理するにはどうすればよいですか?このためのカスタムテンプレートタグを作成する必要がありますか?

4

1 に答える 1

46

addfilterstatementでそれを行うことができます。

{% if foo.paid %}
    {% with template_name=foo.id|stringformat:"s"|add:".html" %}
        {% include "foo/customization/"|add:template_name %}
    {% endwith %}
{% endif %}

まず、を連結した文字列形式template_nameで構成されるを作成します。次に、それをタグに渡し、テンプレートディレクトリへのパスと連結します。foo.id.htmlinclude

于 2012-10-01T08:40:57.767 に答える