<form method="get" action="{% url 'handler_name' parameter %}">
のDjango HTMLテンプレートがあります。私はparameter
をフォームフィールドの値に置き換えたいと思っていました。 Djangoにはそれに関する規定がありますか?Djangoテンプレート内のHTMLフォーム要素へのアクセス{%url%}
urls.py
...
url(r'^sample-endpoint/$', view_function_1, name='endpoint1'),
url(r'^sample-endpoint/(\d+)/$', view_function_1, name='endpoint2'),
...
最初の1 sample-endpoint/
がヒットした時に初めてページがロードされます。ページには入力(数字)があります。数字を選択してボタンをクリックすると、もう1つ、たとえばsample-endpoint/1/
が呼び出され、同じページがいくつかの追加データでレンダリングされます。
catalog.html
<form id='get-list' name='get_list_form' method='get'
action='{% url "endpoint2" placeholder %}'>
{% csrf_token %}
<select id='select-catalog-id' name='catalog_id'>
<option value='1'>Foo</option>
<option value='2'>Bar</option>
</select>
</form>
私はrequest.GET [ 'CATALOG_ID']を使用してviews.py
で、サーバー側で値を取得する必要はありません。私は2つのURLがきれいに見えると感じる。また、両方のURLはGETリクエスト用です。
私の目的は、フォームアクションでplaceholder
ではなく、ドロップダウン(この場合は1または2)で選択した項目の値を使用することです。それはDjangoの箱から提供されていますか?またはカスタムJavaScriptですか?
を使用することができます。 '{%url%}'タグはレンダリング時に解決され、ユーザがその値を選択することができる前です。いくつかのJSを書く必要があります。 –