Не удалось разобрать остаток: '[i] [' fld_id ']' из 'data [i] [' fld_id ']' - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь получить доступ к данным из списка словаря к моему шаблону HTML, и при попытке доступа к данным из словаря произошла следующая ошибка. Эта же ошибка изначально возникала даже при попытке l oop с использованием range (len (data)), но затем я создал другой список, в котором хранится диапазон. Но я не могу сделать это для LOD.

Could not parse the remainder: '[i]['fld_id']' from 'data[i]['fld_id']'

viwes.py

    data_to_print=[
                     {
                        'fld_name':i,
                        'name':randomString(10),
                        'age':randomString(2),
                        'gender':randomString(5)
                      }for i in files_in_user_folder
                  ]

    for q in range(len(data_to_print)):
        numbers.append(q)
    return render(request, 'loginpage/datapage.html',{'data':data_to_print},{'rng':numbers}) 

шаблон. html

</tr> 

      {% for i in rng %}
          <tr>
              <td> {{data[i]['fld_id']}} </td>
              <td> {{data[i]['name']}} </td>
              <td> {{data[i]['age']}} </td>
              <td> {{data[i]['gender']}} </td>
              <td> <a href="http://127.0.0.1:8000/media/{{data[i]['fld_id']}}.zip" download>Download</a></td>
          </tr>
      {% endfor %}

Как решить это?

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

в Django template вы не можете использовать [] для анализа чего-либо, если вместо этого proper dictionary используйте это

{{ data.i.fld_id }}
0 голосов
/ 04 февраля 2020

Это не то, как вы oop просматриваете объекты в списке (массив) в python, вам вообще не нужен индекс (rng не нужен). Вы можете просто выполнить l oop - data, чтобы перебрать объекты в списке (в данном случае каждый объект - это person, который является словарем). Затем получите доступ к ключам словаря, используя точечную запись (см. this , чтобы узнать, как получить доступ к python переменным в django шаблонах).

Сделайте это вместо:

{% for person in data %}
    <tr>
       <td> {{ person.fld_name }} </td>
       <td> {{ person.name }} </td>
       <td> {{ person.age }} </td>
       <td> {{ person.gender }} </td>
       <td> <a href="http://127.0.0.1:8000/media/{{ person.fld_name }}.zip" download>Download</a></td>
    </tr>
{% endfor %}

Примечание: я использую ключ fld_name, потому что это то, что вы определили в своем коде, насколько я вижу, fld_id не определено.

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