Цикл Django по объекту json
Как просмотреть объект JSON в шаблоне Django?
JSON:
"data": {
"node-A": {
"test1A": "val1A",
"test2A": "val2A",
"progress": {
"conf": "conf123A"
"loc": "loc123A"
},
"test3A": "val3A"
},
"node-B": {
"test1B": "val1B",
"test2B": "val2B",
"progress": {
"conf": "conf123B"
"loc": "loc123B"
},
"test3B": "val3B"
}
}
У меня проблемы с доступом к вложенным значениям "conf" и "lock" внутри "progress". Как я могу получить к ним доступ в шаблоне Django, если data
передается как context
, т.е. return (request, 'monitor.html', {"data_context": json_data['data']})
?
Так как у вас все настроено, ваши данные находятся в словаре под названием 'data_context'. Для доступа к тому, что вам нужно в шаблоне, это будет {{data_context.test1A}}.
чтобы не использовать 'data_context.', попробуйте вместо этого следующее,
return (request, 'monitor.html', json_data['data'].to_dict())
Поиск по словарю, поиск по атрибутам и поиск по списку-индексу реализованы с помощью точечной нотации:
{{ my_dict.key.key_nested }}
Поскольку формат JSON ведет себя как словарь в Python, данные, хранящиеся с указанными ключами conf
и loc
, должны быть доступны с помощью нотации python для словарей. Поскольку предоставленный JSON может рассматриваться как вложенный словарь, вам необходимо "конкатенировать" ключи соответственно, чтобы получить желаемые данные.
Ваш оператор return возвращает словарь, который я буду называть ret
, поэтому структура должна быть такой:
{"data_context": {
"node-A": {
"test1": "val1A",
"test2": "val2A",
"progress": {
"conf": "conf123A",
"loc": "loc123A"
},
"test3": "val3A"
},
"node-B": {
"test1B": "val1B",
"test2B": "val2B",
"progress": {
"conf": "conf123B",
"loc": "loc123B"
},
"test3": "val3B"
}
}
}
Для доступа к conf
и loc
:
ret["data_context"]["node-A"]["progress"]["conf"]
получит значение, сохраненное по адресу conf
в node-A