0

DjangoテンプレートのURLタグに逆の名前を含む引数を渡すことは可能ですか?

例えば:

note: In this exampleconditional_URLis not a reverse name.

urls.py:

urlpatterns = patterns('views',
    url(r'^iframeViewURL/$', 'iframeView', name='iframeView'),
    url(r'^url_a/', 'view_a', name='view_a'),
    url(r'^url_b/', 'view_b', name='view_b'),
)

ビュー.py:

def iframeView(**kwargs):
    kw = kwargs
    if kw['condition']:
        conditional_url = 'view_a'  # name of the URL pattern
    else:
        conditional_url = 'view_b'  # name of the URL pattern
    return render_to_response('iframe.html', {'conditional_URL': conditional_url},
                              context_instance=RequestContext(request, {}))

def view_a(*args):
    pass

def view_b(*args):
    pass

iframe.html:

<iframe src="{% url conditional_URL *args %}">
</iframe>

これを試してみましたが、 conditional_URL が URL パターンの名前ではないため、機能しません。

4

2 に答える 2

2

{% load url from future %}テンプレートタグに追加すると、Django 1.3 以降で可能です。

{% load url from future %}
<iframe src="{% url conditional_URL arg1 arg2 %}">
</iframe>

Django 1.5 では、追加する必要がなくなりました{% load url from future %}

詳細については、テンプレートタグのDjango ドキュメントurlの「前方互換性」を参照してください。

于 2013-04-27T08:37:20.390 に答える