У меня есть querydict, который выглядит следующим образом:Извлечение предметов из из QueryDict
<QueryDict: {u'{"content":"aa","id":"1"}': [u'']}>
Как бы извлечь из id
?
Я попытался сделать queryDictExample.get("id")
, но это не сработало.
У меня есть querydict, который выглядит следующим образом:Извлечение предметов из из QueryDict
<QueryDict: {u'{"content":"aa","id":"1"}': [u'']}>
Как бы извлечь из id
?
Я попытался сделать queryDictExample.get("id")
, но это не сработало.
Похоже, ваш клиент размещает JSON, а не formencoded данные. Вместо доступа к request.POST
используйте request.body
(request.raw_post_data
в версиях 1.3 или меньше) и используйте json.loads()
для преобразования в dict.
Вы можете использовать values_list для запроса dict, т. Е .: MyDict.values_list('id')
- он вернет список списков с идентификатором внутри. Для того, чтобы вернуть список использования ID MyDict.values_list ('ид', квартира = True)
Полезные ссылки:
https://docs.djangoproject.com/en/1.4/ref/models/querysets/#values-list
https://docs.djangoproject.com/en/1.4/ref/models/querysets/#values
OP говорит о QueryDicts, а не QuerySets. – Adriaan
Возможно, это не в полной мере относится к вам. Но когда я искал это, ваш вопрос был первым вопросом Stackoverflow.
Я просто хотел получить базовые данные POST в Django. Так что просто использование GET отлично подходит для меня. Как утверждали другие, может быть проще лучше форматировать любой скрипт, создающий запрос.
В принципе у меня есть AJAX делает запись в сторону Джанго, СТОЛБ выглядит как это:
params = name=somename&data=abcdefg
http.send(params);
то в моем view.py, я сделал это
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)
Выходной ALLDATA был:
<QueryDict: {u'data': [u'abcdefg'], u'name': [u'somename']}>
и команды получают дают
name: name
data: abcdefg
OMG !! С вчерашнего дня я был сержантом. Спасибо! –
Это работает для нескольких значений:
dict(MyDict.lists())
ключи Dict являются запрос вары и значения Dict списки значений запроса.
Вы можете использовать - request.data.get("content")
Это даст вам данные непосредственно, если в переднем конце (jQuery, Angular) вы НЕ использовали JSON.stringify(data)
.
это работает также для значений, которые являются списки:
dict_ = {k: qdict.getlist(k) if len(qdict.getlist(k))>1 else v for k, v in qdict.items()}
Fix приложение на стороне клиента, который в результате сломанного объекта первым. –
Как я могу воссоздать вашу переменную? Я не знаком с синтаксисом хитов. – octopusgrabbus