web-dev-qa-db-ja.com

Django-POSTリクエストから値を取得

次のDjangoテンプレートがあります(http:// IP/admin/start /はviewと呼ばれる仮想ビューに割り当てられています):

{% for source in sources %}
  <tr>
    <td>{{ source }}</td>

    <td>
    <form action="/admin/start/" method="post">
      {% csrf_token %}
      <input type="hidden" name="{{ source.title }}">
      <input type="submit" value="Start" class="btn btn-primary">
    </form>
    </td>

  </tr>
{% endfor %}

sourcesは、ビューで参照されているDjangoモデルのobjects.all()です。 「開始」送信入力がクリックされるたびに、レンダリングされたページを返す前に、「開始」ビューで関数内の{{ source.title}}データを使用するようにします。 POSTされた情報(この場合、非表示の入力)をPython変数に収集するにはどうすればよいですか?

67
Randall Ma

ビューが受け取るリクエストオブジェクトについて読む: https://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects

また、非表示フィールドには信頼できる名前と値が必要です。

<input type="hidden" name="title" value="{{ source.title }}">

次に、ビューで:

request.POST.get("title", "")
112
jdi

フロントエンドで何かする必要がある場合は、フォームのonsubmitイベントに応答できます。 admin/startに投稿するだけの場合は、リクエストオブジェクトを介してビューの投稿変数にアクセスできます。投稿変数の辞書であるrequest.POST

11
dm03514