web-dev-qa-db-ja.com

Django getパラメータの取得

Djangoリクエストには次のものがあります:

POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>

sectionおよびMAINSの値を取得するにはどうすればよいですか?

if request.method == 'GET':
    qd = request.GET
Elif request.method == 'POST':
    qd = request.POST

section_id = qd.__getitem__('section') or getlist....
66
Hulk

[]を使用して、通常の辞書と同じようにQueryDictオブジェクトから値を抽出できます。

# HTTP POST variables
request.POST['section'] # => [39]
request.POST['MAINS'] # => [137]

# HTTP GET variables
request.GET['section'] # => [39]
request.GET['MAINS'] # => [137]

# HTTP POST and HTTP GET variables (Deprecated since Django 1.7)
request.REQUEST['section'] # => [39]
request.REQUEST['MAINS'] # => [137]
75
Johannes Gorset

以下も使用できます。

request.POST.get('section','') # => [39]
request.POST.get('MAINS','') # => [137] 
request.GET.get('section','') # => [39]
request.GET.get('MAINS','') # => [137]

これを使用すると、エラーが発生しなくなります。キーを持つPOST/GETデータが定義されていない場合、例外を発生させる代わりに、フォールバック値(.get()の2番目の引数が使用されます)。

167
crodjer