Итерирование внутри шаблона json.dumps (), предварительно отформатированные теги в шаблоне - PullRequest
0 голосов
/ 13 июня 2019

Я наконец-то успешно перечислен как «древовидный» вложенный ответ JSON, отображаемый с помощью шаблона.Но по стоимости.Я не могу перебрать идентификаторы и значения (контекст, переданный в шаблон) в шаблоне.
Что касается не вложенных ответов JSON, я могу выполнять итерации в шаблоне и манипулировать любым идентификатором и значением, которое я хочу.но когда я пытаюсь сделать это с помощью вложенного ответа JSON (JSON внутри JSON), я ничего не могу сделать.

Не вложенный код сценария JSON и эффект:
views.py

def about(request, host_id):
    hostname = Host.objects.get(pk=(host_id))
    response = requests.get(
        'https://{}:1769/api/v1/about'.format(hostname),
        verify='cert/cacerts.pem',
        headers={'Accept': 'application/json', 'Authorization': 'Basic xxxxxxxxxxxxxxxxxxxxxx'},
    ).json()
    context = {'response': response, 'hostname': hostname}
    return render(request, 'itpassed/json.html',context)

json.html

[...]
{% if response %}
    {% for id, value in response.items %}
        <p><b>{{ id }}:</b>
        <br>
        {{ value }}</p>
    {% endfor %}
{% else %}
    <p>No IDs are available.</p>
{% endif %}
[...]

эффект в браузере:

версия:
3.4

уровень:

система:
unix

server_time:
1560423771000

server_utc:
2


Nestes JSON код сценария и эффект:
views.py

def transfers(request, host_id):
    hostname = Host.objects.get(pk=(host_id))
    response = requests.get(
        'https://{}:1769//api/v1/transfers?fields=PART%2CDIRECT%2CTYPE[...]&limit=100'.format(hostname),
        verify='cert/cacerts.pem',
        headers={'Accept': 'application/json', 'Authorization': 'Basic xxxxxxxxxxxxxxxxxxxx'},
    ).json()
    response = json.dumps(response, indent=3)
    context = {'response': response, 'hostname': hostname}
    return render(request, 'itpassed/json_nest.html', context)

json_nest.html

<code>[...]
{% if response %}
<pre>{{ response }}
{% else%}

Нет доступных идентификаторов.

{% endif%} [...]

эффект в браузере:

{
   "transfers": [
      {
         "part": "HOSTNAME_SSL",
         "direct": "SEND",
         "type": "MESSAGE",
         "compatstate": "T",
         "state": "T",
         "idf": "NOW",
         "idt": "F1112091",
         "idtu": "A000000H",
         "msg": "test",
         "requser": "usr",
      },
      {
         "part": "HOSTNAME2_SSL",
         "direct": "SEND",
         "type": "MESSAGE",
         "compatstate": "T",
         "state": "T",
         "idf": "TEST",
         "idt": "F1110560",
         "idtu": "A000000G",
         "msg": "test",
         "requser": "usr",
      }
   ],
   "numberOfSelectedRecords": 2,
   "numberOfUsedRecords": 2,
   "numberOfRecords": 10000,
   "offset": 0
}

есть ли возможность управлять откликом JSON во вложенном сценарии, как и во вложенном сценарии?я имею в виду «полужирные» идентификаторы (переводы) или идентификаторы внутри идентификаторов (часть, прямой и т. д.)
я пробовал много разных способов передачи JSON и рендеринга JSON, но это тот, который работает и ближе всего к моемуожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...