W żądaniu Django mam:
POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>
Jak uzyskać wartości section
i MAINS
?
if request.method == 'GET':
qd = request.GET
elif request.method == 'POST':
qd = request.POST
section_id = qd.__getitem__('section') or getlist....
python
django
django-models
django-views
Ponton
źródło
źródło
Odpowiedzi:
Możesz użyć
[]
do wyodrębnienia wartości zQueryDict
obiektu, tak jak w przypadku każdego zwykłego słownika.# 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]
źródło
Możesz również użyć:
request.POST.get('section','') # => [39] request.POST.get('MAINS','') # => [137] request.GET.get('section','') # => [39] request.GET.get('MAINS','') # => [137]
Użycie tego gwarantuje, że nie otrzymasz błędu. Jeśli dane POST / GET z dowolnym kluczem nie są zdefiniowane, zamiast zgłaszania wyjątku zostanie użyta wartość rezerwowa (zostanie użyty drugi argument funkcji .get ()).
źródło