HTML таблица не отображается правильно - PullRequest
0 голосов
/ 31 мая 2018

У меня есть представление Django, которое отправляет словарь, содержимое которого будет отображено на html-странице.

Мой словарь выглядит так,

d ={ name : ['damon','stefan','elena'],
      age :  [200,200,25],
      address : ['mystic falls','mystic falls','mystic falls']
      supernatural : ['yes','yes','yes']}

Теперь мой шаблон HTML-таблицы выглядит следующим образомэто,

<table class="table table-striped" border="1" class="dataframe">
    <thead>
     <tr style="text-align: center;">
       {% for i in d %}
       <th>{{ i }}</th>
       {% endfor %}
     </tr>
   </thead>
   <tbody>
     {% for i,j in d.items %}
      <tr style="text-align: center;">
       {% for x in j %}
        <td>{{ x }}</td>
       {% endfor %}
      </tr>
      {% endfor %}
   </tbody>
 </table>

проблема:

Когда рендеринг завершает словари, последние значения, т. е. ['yes', 'yes', 'yes'] приходят в виде строки.Ниже показано, как выглядит вывод:

name     age       address    supernatural
damon    200    mystic falls  
stefan   200    mystic falls  
elena     25    mystic falls  
yes       yes   yes

В основном значения последних столбцов идут в виде строк.

Не могли бы вы мне помочь, почему это так?Что-то не так в моем HTML-коде таблицы выше.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Возможно, вам придется изменить тип данных.ваш d немного странный тип.Я рекомендую вам изменить его на обычный объект (оба могут знакомы по объекту python / javascript.), Как показано ниже

    d2 = [
        {'name': 'damon', 'age': 200, 'address': 'mystic falls', 'sub': 'yes'},
        {'name': 'stefan', 'age': 200, 'address': 'mystic falls', 'sub': 'yes'},
        {'name': 'elena', 'age': 200, 'address': 'mystic falls', 'sub': 'yes'},
    ]

Тогда вы можете просто забыть в шаблоне.как показано ниже.

<table class="table table-striped" border="1" class="dataframe">
    <thead>
     <tr style="text-align: center;">
       {% for k, v in d2.0.items %}
       <th>{{ k }}</th>
       {% endfor %}
     </tr>
   </thead>
   <tbody>
   {% for x in d2 %}
      <tr style="text-align: center;">
          <td>
              {{ x.name }}
          </td>
          <td>
              {{ x.age }}
          </td>
          <td>
              {{ x.address }}
          </td>
          <td>
              {{ x.sub }}
          </td>
      </tr>
  {% endfor %}
   </tbody>

пс.Вы можете использовать свои текущие данные, но они более сложны и действительно сложны для понимания - трудно сопоставить одного человека с его данными, и даже это не может совпадать, если какое-то поле пусто.

0 голосов
/ 31 мая 2018

Я думаю, вам нужно написать запятую "," после address:[]

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