2017-01-24 7 views
0

<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ですか?

+2

を使用することができます。 '{%url%}'タグはレンダリング時に解決され、ユーザがその値を選択することができる前です。いくつかのJSを書く必要があります。 –

答えて

-1

あなたは、これはDjangoがおそらく何ができるものではありません

{% if form.field.value %} value="{{ form.field.value }}" {% endif %} placeholder="{{ description }}" 
+0

私はこれがシャーが探していた答えではないことを知っています。それは彼をまったく助けません。しかし、私はこの記事を見つけたときに私が探していた答えです。私は他の誰かが私がやったのと同じ検索語を使って、このポストに来ると思ったが、少なくとも彼らは絶望的に他の場所を見ることなくここに私の解決策を見出すだろう。 – Tiffany

関連する問題