0

現在、render_to_response は html を保持する HttpResponse オブジェクトを返しますが、テンプレート、辞書、およびビューからの要求から HTML のみをレンダリングする方法はありますか?

注:これを行う理由は、djangoビューを互いにネストし、テンプレートインクルードを介して含めるのではなく、この方法で値を含めることができるようにするためです

すなわち:

menu.html:

<div>menu {{ text }}</div>

これ欲しい:

template.html:

<div >...{{ menu }} </div>

見る

def menu(request, ...):
    # do menu variable calculations here
    # returned html string rendered from template, request, kwargs, and variables    

def base(request, ...):
    menu = menu(request, ...) # rendered html for menu values
    render_to_response("template.html", context={"menu":menu})

それよりも:

template.html

<div>{% include menu.html %}</div>

見る

def base(request, ...):
    # calculate menu variable values here
    render_to_response("template.html", context=dictionary_of_menu_items)
4

2 に答える 2

0

django.template.loader.render_to_stringを使用して「メニュー」html を生成できると思います。これにより、評価された HTML を含む文字列が返されます。

次に、テンプレート変数を評価するときにフィルターtemplate.htmlを使用する必要があります。safemenu

<div>{{menu|safe}}</div>
于 2013-05-18T09:31:56.900 に答える