{% url %}
タグにリクエストパラメータを追加したいと考えています(?office=foobar
など)。Djangoの{%url%}テンプレートタグを使用してクエリパラメータを渡すことはできますか?
これは可能ですか?私はそれで何かを見つけることができません。
{% url %}
タグにリクエストパラメータを追加したいと考えています(?office=foobar
など)。Djangoの{%url%}テンプレートタグを使用してクエリパラメータを渡すことはできますか?
これは可能ですか?私はそれで何かを見つけることができません。
いいえ、GETパラメータはURLの一部ではないためです。
単に最後に追加します:
{% url my-view-name %}?office=foobar
深刻anwser:いいえ、することができますジャンゴ1.5+
<a href="{% url 'myview' %}?office=foobar">
まず、愚かな答えを
<a href="{% url myview %}?office=foobar">
を't。 DjangoのURLリゾルバは、URLののパスと一致するだけです。したがって、{% url %}
タグはURLのその部分を逆順にすることができます。ミックスアップするために、現在のパラメータを新しいものと
確かに。それは意味があります...私はちょうどそれがそれより少しエレガントだったらいいと思う。 –
あなたはいつもよりエレガントなカスタムタグ - {%qpurl myview office = foobar%}を書くことができます。これは、値を処理して適切にエンコードすることもできます。 – Spacedman
方法:
{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}
リクエスト変数を持つように設定を変更します。
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
使用urlencode
引数が変数
<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">
またはそれ以外スペースのような文字はあなたのURLを壊すかもしれません。 url
の
ドキュメントは直接url
を用いる方法を言及していない:https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url
まあ、技術的に彼らがいます。 [RFC 1738](http://www.ietf.org/rfc/rfc1738.txt)によると、HTTP URLの形式は次のとおりです。http://:/? 。 –
naktinis
@naktinis HTTP URLです。はい。 DjangoのURL、[それほどではありません](https://docs.djangoproject.com/en/1.4/topics/http/urls/#how-django-processes-a-request)。したがって、 "URL"のさまざまな定義については、どちらも正しいです:P –
これは、example.com/myviewの代わりに 'example.com/myview/?office = foobar'のように、後続のスラッシュがURLを中断しないようにします?office = foobar'? –