Имея доступ к ребячливым элементам в JSON с одного сдержись Джанго

У меня есть следующий документ JSON

{
  "paciente": {
    "id": 1234,
    "nombre": "Pablo Andrés Agudelo Marenco",
    "sesion": {
      "id": 12345,
      "juego": [
        {
          "nombre": "bonzo",
          "nivel": [
            {
              "id": 1234,
              "nombre": "caida libre",
              "segmento": [
                {
                  "id": 12345,
                  "nombre": "Hombro",
                  "movimiento": [
                    {
                      "id": 1234,
                      "nombre": "Flexion",
                      "metricas": [
                        {
                          "min": 12,
                          "max": 34,
                          "media": 23,
                          "moda": 20
                        }
                      ]
                    },
                    {
                      "id": 12345,
                      "nombre": "Extensión",
                      "metricas": [
                        {
                          "min": 12,
                          "max": 34,
                          "media": 23,
                          "moda": 20
                        }
                      ]
                    }
                  ]
                },
                {
                  "id": 12345,
                  "nombre": "Escápula",
                  "movimiento": [
                    {
                      "id": 1234,
                      "nombre": "Protracción",
                      "metricas": [
                        {
                          "min": 12,
                          "max": 34,
                          "media": 23,
                          "moda": 20
                        }
                      ]
                    },
                    {
                      "id": 12345,
                      "nombre": "Retracción",
                      "metricas": [
                        {
                          "min": 12,
                          "max": 34,
                          "media": 23,
                          "moda": 20
                        }
                      ]
                    }
                  ]
                }
              ],
              "___léeme___": "El array 'iteraciones' contiene las vitorias o derrotas con el tiempo en segundos de cada iteración",
              "iteraciones": [
                {
                  "victoria": true,
                  "tiempo": 120
                },
                {
                  "victoria": false,
                  "tiempo": 232
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

Этот документ несмотря на то, что имеет определенную структуру, в договоренности segmento если это случай, или не могут приходить данные и от случая к случаю не.

В данных обстоятельствах, часто элемент segmento смоги иметь один, два и до трех типов стоимости внутри Вашего array.

"paciente": ...
   "sesion": ...
       "juego": ...
           **"segmento":[{"id": ...,"nombre":...},{"id": ...,"nombre":...},{"id": ...,"nombre":...}]**

Я должен показывать стоимость segmento.nombre в одном сдержись следующего способа:

Каждая стоимость segmento.nombre будь должен появляться в одном html div tab, я схватил например, если мой документ JSON прибывает с двумя элементами в array segmento

{
  "segmento": [{
    "id": 12345,
    "nombre": "Escapula",
  }, {
    "id": 12345,
    "nombre": "Hombro",
  }]
}

Тогда, она должна являться этой двумя стоимостью в сдержись, таким образом:

introducir la descripción de la imagen aquí

Документ JSON я это читаю, таким образом:

 ...
with open('ProcessedMetrics.json') as data_file:
            session_data=json.loads(data_file.read())
            context['session_data'] = session_data
 ...

И в сдержись, я делаю следующее:

 
  

Результат, который я получаю до сих пор:

introducir la descripción de la imagen aquí

Поскольку возможно подробно описывать, я захватил стоимость игры и основная уровень.

Мне трудно продвигаться в стоимость ключа nivel и отсюда в array segmento

Как он мог бы соглашаться на эти элементы оптимальной формы? Идея, которую я хочу, состоит в том, чтобы мочь производить столько tabs как документы сегмента существуйте в Вашем array segmento


  • ОБНОВЛЕНИЕ

Согласно ответу, данному из-за @German-Alzate-Martinez, кроме этого, я захотел добавить форму в как соотносить tabs, которые производятся в связи с контентом ключа segmento, который является array в моем файле JSON

Важное, которое нужно иметь в виду в признаке href tab (внутри ul и div) где определяется идентификатор (#) который в моем случае является именем сегмента (href="#{{nest3.nombre}}")

Кроме этого, в контенте этого tab, осуществляется корреляция с этим tab, созданным в классеtab-pane с id="{{nest3.nombre}}"

Это имеет эту форму:

Он имеет эту форму в, как я могу производить tabs специфические средства согласно числу стоимости сегментов, которым они мстят в моем clave/array segmento в файле JSON, который я прочитал, кроме того я присоединяю эти tabs к Вашему соответствующему контенту.

Что я не смотрел добра, он:

Если мы смотрим, в документе JSON шрифт моих данных, у сегментов есть определенные движения, которые укрыты внутри tab segmento что является array, в конце дня:

Для этого я выделяю далее часть моего документа JSON, где это происходит:

{

    "segmento": [{
        "id": 12345,
        "nombre": "Hombro",
        "movimiento": [{
            "id": 1234,
            "nombre": "Flexion",
            "metricas": [{
                "min": 12,
                "max": 34,
                "media": 23,
                "moda": 20
            }]
        }, {
            "id": 12345,
            "nombre": "Extensión",
            "metricas": [{
                "min": 12,
                "max": 34,
                "media": 23,
                "moda": 20
            }]
        }]
    }, {
        "id": 12345,
        "nombre": "Escápula",
        "movimiento": [{
            "id": 1234,
            "nombre": "Protracción",
            "metricas": [{
                "min": 12,
                "max": 34,
                "media": 23,
                "moda": 20
            }]
        }, {
            "id": 12345,
            "nombre": "Retracción",
            "metricas": [{
                "min": 12,
                "max": 34,
                "media": 23,
                "moda": 20
            }]
        }]
    }]
}

То, что я желаю и мне не смогло удаваться дело в том, что, когда я щелкаю tab или закладку, он что, если сегмент Hombro, например, только у меня появились движения, которые укрыты внутри array movimiento что находится внутри сегментов в JSON.

Также также метрические (array metricas) что внутри array movimiento.

На данный момент, и поскольку он может, поверните здесь, https://nrhb.herokuapp.com/sesiones-de-rehabilitacion/3 в каждом tab, который производится dinámicamente согласно числу сегментов, которые приносит array segmento красятся все движения, которые есть у документа, не импортируя, если они принадлежат сегменту в особенности.

А именно, если я кликаю в tab Hombro, у меня выходят укрытые движения, которые есть у сегмента Hombro и те Escápula и так в tab Escápula также.

Это происходит, потому что в контенте каждого tab во мне сдержись html в div с классом tab-pane показав таблицу, в Ваш td или соответствующий реестр я говорю, что я соглашаюсь на array движение с новым индексом, данным циклом for

(искать ниже секцию циклов, укрытых, где он говорит {% for nest4 in nest3.movimiento %}) и там я рисую {{nest4.nombre}}

То же самое в цикле {% for nest5 in nest4.metricas %} где я помещаю каждую стоимость с индексом nest5, для случая array metricas

Métricas

{% for nest1 in session_data.paciente.sesion.juego %} {% for nest2 in nest1.nivel %} {% for nest3 in nest2.segmento %} {% for nest4 in nest3.movimiento %} {% for nest5 in nest4.metricas %} {% endfor %} {% endfor %} {% endfor %} {% endfor %} {% endfor %}
Movimientos Minimo Maximo Media Moda
{{nest4.nombre}} {{nest5.min}} {{nest5.max}} {{nest5.media}} {{nest5.moda}}

Тогда моя тревога, что я сделал ее достаточно длинной, потому что я захотел определить детали, если бы они были необходимы, - такая, как я могу просачиваться в td или реестры, что у меня вышли соответствующие движения сегмента и метрические соответствующие движения, и так мочь давать утилиту каждому tab или закладке.

Я надеюсь не быть неуместным с этой консультацией, и Ваша помощь или ориентация будет altaamente оцененная.

0
задан 13.04.2017, 16:00
1 ответ

Хороший, что я вижу, что больше он может помогать тебе, он состоял бы в том, чтобы обращаться без статей, а именно...

...
<div class="nav-tabs-custom">
{% for nest1 in session_data.paciente.sesion.juego %}
    {% for nest2 in nest1.nivel %} <!-- get all games (juego array)-->
        <ul class="nav nav-tabs">
            {%for nest3 in nest2.segmento %}
                <li class="active">                                  
                    <a href="#mano" data-toggle="tab" aria-expanded="true"><i class="fa fa-check-square">{{nest3.nombre}}</i> 
                    </a>
                </li>
            {%endfor%}
            <li>
                <a href="#codo" data-toggle="tab" aria-expanded="false"><i class="fa fa-check-square"></i> other tab hardcoded</a>
            </li>  
        </ul>
    {%endfor%}    
{%endfor%}
</div>
...

, Если ты замечаешь, уже я не обращаюсь из-за статей, если бы не, что я иду в статью, которая интересует меня согласно JSON, что сначала приходит array уровней, и потом array сегментов... однако, я вижу, что это смогло ocacionarte ошибки в будущее, не, если ты считаешь это таким определенный какой-то razГіn, но лучшее состояло в том, чтобы ты достал tag <ul> всех циклов, так ты убеждаешься, что Гєnico, которая повторяется, были <li>, пример был бы...

...
<div class="nav-tabs-custom">
    <ul class="nav nav-tabs">
        {% for nest1 in session_data.paciente.sesion.juego %}
            {% for nest2 in nest1.nivel %} <!-- get all games (juego array)-->
                {%for nest3 in nest2.segmento %}
                <li class="active">                                  
                    <a href="#mano" data-toggle="tab" aria-expanded="true"><i class="fa fa-check-square">{{nest3.nombre}}</i> 
                    </a>
                </li>
                {%endfor%}
                <li>
                    <a href="#codo" data-toggle="tab" aria-expanded="false"><i class="fa fa-check-square"></i> other tab hardcoded</a>
                </li>
            {%endfor%}    
        {%endfor%}
    </ul>
</div>
...
1
ответ дан 24.11.2019, 12:20
  • 1
    Спасибо за твой ответ. Оно я функционировало, чтобы производить tab из-за каждого сегмента, который читается документа JSON. У меня есть тревога и состоит в том, что у каждого div, где производится tab, есть соответствующий content, который в другом div, согласно этому, я поместил их внутри первого цикла, но я они показывает непрерывным способом. что-то подобное этому cldup.com/XguiDM6yMb.png – bgarcial 30.11.2016, 00:00
  • 2
    @bgarcial я не понимаю много твою тревогу, не, если ты захотел открыть другой вопрос с твоей тревогой – German Alzate 30.11.2016, 15:33
  • 3
    я понимаю, буду стараться осуществлять actualizació n или реализовывать другой вопрос. :) – bgarcial 30.11.2016, 16:10
  • 4
    я осуществил actualizació n в мою тревогу, в relació n в продвижение, которое я смог реализовывать принимая во внимание твой ответ и что-то больше, что я сделал. actualizació n salió немного скажи, но он, потому что я захотел подробно описать мою тревогу, но é sta пойди в той же lí nea, которого ты помог мне в твоем ответе а следовательно не является тоскливым чтение. Я тебе благодарен за твой oreintació n, в случае когда является возможный и большое спасибо :) – bgarcial 02.12.2016, 01:29