Django запрос получить параметры


в запросе 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....
2 54

2 ответа:

можно использовать [] для извлечения значений из 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]

вы также можете использовать:

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

использование этого гарантирует, что вы не получите ошибку. Если данные POST / GET с любым ключом не определены, то вместо того, чтобы вызывать исключение, резервное значение (второй аргумент .get() будет использоваться).