11

django テンプレートのインクルードのパラメーターとして URL を渡す方法を知りたいです。

私のコードには、ボタンの作成に使用される HTML ファイルがあります。したがって、このボタンを追加したいときは、それを含めるだけです。問題は、パラメーターの 1 つが URL であることです。今のところ、テキスト URL を配置する以外の解決策は見つかりませんでした。

だから私はこれを持っています:

{% include "button.html" with title="title" link="/new-event/" %}

そして、私は次のようなものを持っている必要があります:

{% include "button.html" with title="title" link={% url myview.view%} %}

どうもありがとうございました!

4

3 に答える 3

19

この構文を試しましたか:

{% url 'some-url-name' arg arg2 as the_url %}
{% include "button.html" with title="title" link=the_url %}
于 2016-01-31T09:43:07.533 に答える
8

インクルードタグで使用するには、コンテキストに追加される変数にURLを割り当てる必要があると思います。

例:

見る:

from django.core.urlresolvers import reverse

def your_view(request):
    url = reverse('the_url_name_to_reverse', args=[], kwargs={})
    return render(request, 'the-template.html', {'url': url})

テンプレート:

{% include "button.html" with title="title" link=url %}

すべてのテンプレートで必要な値である場合は、コンテキスト プロセッサを追加して、反転した URL 値をコンテキストに追加することを検討してください。

于 2012-11-29T15:11:27.320 に答える
3

このソリューションがより適していると感じる人もいるかもしれません:

最初にフィルタを作成します

from django.core.urlresolvers import reverse
@register.filter()
def rev(value):
    return reverse(value)

次に、このようにテンプレートで使用します

{% include "button.html" with title="title" link="myview.view"|rev %}
于 2015-02-01T18:27:25.043 に答える