Я пытаюсь создать динамический календарь (для веб-приложения для планирования сотрудников). В настоящее время используется python / flask. В настоящее время я генерирую таблицу HTML с информацией, передаваемой в шаблон jinja. Он перебирает каждую ячейку и печатает переданные данные.
Я попытался создать двумерную матрицу (которая будет представлять оси x и y в моей таблице HTML). Затем я хочу заполнить каждую «ячейку» в матрице объектом, который будет обладать любыми свойствами, которые я мог бы получить для каждой ячейки (например, идентификатор, который нужно найти при нажатии, текст для отображения, несколько других, которые я мог бы добавить)
Каждый ряд клеток заполняется циклом
например,
- позиция [0] [0] пусто / заполнитель текста
- позиция [1-22] [0] последовательных дат
- позиция [0] [1-xxx] показывает сдвиг (от поиска в базе данных) - xxx будет зависеть от количества доступных типов сдвигов в базе данных
- позиция [1-22] [1] содержит объекты ячейки календаря с информацией (например, какой сотрудник выполняет смену в той же строке на дату для этого столбца
table_matrix передается в шаблон jinja, который затем перебирает те же данные и использует его для создания таблицы HTML.
Я новичок и в Python, и в коде, поэтому извините, если я сделал что-то явно глупое!
Если есть лучший способ решения общей проблемы, я тоже рад это слышать.
Спасибо!
Создать матрицу таблицы:
table_matrix = [[0 for x in range(table_columns)] for y in range(table_rows)]
Последовательные даты для строки 0: ("start_day" - просто фиктивный текст, пока я устраняю неполадки)
for each in range(21)[1:]: #slicing - starts from array 1 not 0
table_matrix[0][each] = CalendarTableCell
table_matrix[0][each].cell_text = "start_day"
Передать шаблону Jinja как table_matrix = table_matrix
Когда я делаю это (вручную назначается на "ROSTER") в jinja, это, кажется, работает нормально
{{ table_matrix[0][0].cell_text }}
Когда я перебираю матрицу таблицы в jinja, я получаю
<class 'app.models.CalendarTableCell'>
или списки [0,0,0,0,0,0,0]
Я пробовал зацикливаться с
{% for each in table_matrix %}
<td>{{ table_matrix[0][each] }}</td>
<% endfor %}
и
{% for each in table_matrix %}
<td>{{ table_matrix[0][each].cell_text }}</td>
{% endfor %}
А также пробовал с
{% for sublist in table_matrix %}
{% for item in sublist %}
{{ item }}
{% endfor %}
{% endfor %}
(а также пробовал с item.cell_text и item [0] / item [1] / item [3] ...)
Я ожидаю найти те же данные, которые я передал - предпочтительно объект с несколькими доступными переменными (если я не могу этого сделать, это добавит много сложности или мне нужно будет придумать новую структуру)