Получение python ошибок использования с использованием Django для отображения таблицы файлов в каталоге - PullRequest
0 голосов
/ 07 мая 2020

Итак, я пытаюсь получить Django для отображения шаблона, который показывает список файлов в локальном каталоге. Мой views.py выглядит так:

from django.shortcuts import render
from django.http import HttpResponse
from os import listdir 
def index(request):
    files = listdir("/path/to/directory/")
    filelen = len(files)
    return render(request, 'path/to/template.html')

Мой html шаблон выглядит так:

{%for i in range(1, filelen)%}
<tr>
    <td>{{i}}</td>
    <td>{{files[i]}}</td>
    {% if "a" in files[i] %}
        <td>✓</td>
    {% else %}
        <td>x</td>
    {% endif %}
    {% if "b" in files[i] %}
        <td>✓</td>
    {% else %}
        <td>x</td>
{% endif %}

Но когда я пытаюсь запустить его, я получаю следующую ошибку:

Error at line 39
'for' statements should use the format 'for x in y': for i in range(1, len_files)

Кто-нибудь знает, как заставить это работать? Я попытался заменить filelen на {{filelen}}, но это дало мне ту же ошибку.

1 Ответ

1 голос
/ 07 мая 2020

Вы не можете использовать функцию range() в шаблоне. Скорее сделайте следующее. В вашем view.py добавьте следующее:

def index(request):
   files = listdir("/path/to/directory/")
   filelen = len(files)
   return render(request, 'path/to/template.html', {'filelen': filelen})

, а затем в свой шаблон l oop, используя этот номер диапазона следующим образом:

{%for i in filelen %}
 ...
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...