ho un QueryDict che è simile al seguente:Estrazione voci su un QueryDict
<QueryDict: {u'{"content":"aa","id":"1"}': [u'']}>
Come dovrei estrarre fuori id
?
Ho provato a fare queryDictExample.get("id")
, ma non ha funzionato.
ho un QueryDict che è simile al seguente:Estrazione voci su un QueryDict
<QueryDict: {u'{"content":"aa","id":"1"}': [u'']}>
Come dovrei estrarre fuori id
?
Ho provato a fare queryDictExample.get("id")
, ma non ha funzionato.
Sembra che il tuo cliente sta postando JSON piuttosto che formencoded dati. Invece di accedere a request.POST
, utilizzare request.body
(request.raw_post_data
nella versione 1.3 o inferiore) e utilizzare json.loads()
per convertire in un dettato.
È possibile utilizzare values_list su query dict, ad esempio MyDict.values_list('id')
- restituirà l'elenco di elenchi con ID all'interno. Per restituire l'elenco di utilizzo id MyDict.values_list ('id', piatta = True)
Link utili:
https://docs.djangoproject.com/en/1.4/ref/models/querysets/#values-list
https://docs.djangoproject.com/en/1.4/ref/models/querysets/#values
OP sta parlando di QueryDicts, non di QuerySets. – Adriaan
Forse questo non si applica completamente a voi. Ma quando ho cercato questo, la tua domanda è stata la prima domanda StackOverflow.
Volevo solo ottenere i dati POST di base in Django. Quindi usare GET ha funzionato bene per me. Come hanno affermato gli altri, potrebbe essere più semplice formattare meglio qualsiasi script stia creando la query.
Fondamentalmente ho un AJAX facendo un post verso Django, il POST sembra un po 'come questo:
params = name=somename&data=abcdefg
http.send(params);
poi nel mio view.py, ho fatto questo
def somefuntion(request):
if request.method == 'POST':
log.info('POST applied')
alldata=request.POST
log.debug(alldata)
data = alldata.get("data", "0")
name = alldata.get("name", "0")
log.info("POST name: " + name)
log.info("POST data: " + data)
L'uscita del alldata era:
<QueryDict: {u'data': [u'abcdefg'], u'name': [u'somename']}>
ei comandi ottengono dare
name: name
data: abcdefg
OMG !! Ero stato wrasslin 'con questo da ieri. Grazie! –
Questo funziona per più valori:
dict(MyDict.lists())
chiavi Dict sono di query VAR, e valori dict sono elenchi di valori di query.
Puoi usare - request.data.get("content")
Questo ti darà i dati direttamente se in front-end (jQuery, Angolare) NON hai usato JSON.stringify(data)
.
questo funziona anche per i valori che sono liste:
dict_ = {k: qdict.getlist(k) if len(qdict.getlist(k))>1 else v for k, v in qdict.items()}
fissare l'applicazione sul lato client che sta causando l'oggetto rotto prima. –
Come posso ricreare la variabile? Non ho familiarità con la sintassi degli hit. – octopusgrabbus