フォームに入力された値を取得するには、django.http.HttpRequestオブジェクトのGET属性やPOST属性を使用します。
HttpRequest.GETにはHTTP GETパラメータが、HttpRequest.POSTにはHTTP POSTパラメータが入ります。
HttpRequest.GETとHttpRequest.POSTはdjango.http.QueryDictオブジェクトです。
辞書によく似ていますが、カスタマイズされている機能があります。
たとえば、次のフォームから入力を受け付けるとします。
<form action="/create" method="post">
<input id="id" name="id" value="235" type="hidden" />
<input name="comment" value="編集" type="submit" />
</form>
このとき、HttpRequest.POSTは次の値を返します。
request.POST['id'] #=> u'235'
request.POST['comment'] #=> u'編集'
QueryDict.getlist(key)を使うと、同じキーに対して複数の値を取得できます。
<form action="/create" method="post">
<input id="id" name="id" value="1" type="hidden" />
<input id="id" name="id" value="2" type="hidden" />
<input id="id" name="id" value="3" type="hidden" />
<input name="comment" value="編集" type="submit" />
</form>
このとき次の値を取得できます。
request.POST['id'] #=> u'3' #最後の値を返す
request.POST.getlist('id') #=> [u'1', u'2', u'3']
QueryDict.lists()はすべての値をリストで返します。
上の例では、次の値を返します。
request.POST.lists() #=> [(u'comment', [u'編集']), (u'id', [u'1', u'2', u'3'])]