Ошибка при попытке создать на Django школьное расписание, которое автоматически заполняется кнопками в нужное время и день недели
Я пытаюсь создать школьное расписание на Django, которое автоматически заполняется кнопками после его создания. Я потратил много времени, пытаясь придумать способ, так как я все еще не очень опытен в программировании и очень новичок в Django, но я пытался сделать это с помощью циклов "for", используя вложенный словарь в представлениях, но из-за моего отсутствия понимания и опыта я не могу понять, откуда берется ошибка (VariableDoesNotExist at /timetable/ Failed lookup for key [end_time] in 'monday').
вот мой models.py таблицы расписания (некоторые вещи на португальском):
class Horario(models.Model):
ID_Horario = models.BigAutoField(primary_key=True)
ID_Sala = models.ForeignKey(Sala, on_delete=models.CASCADE)
ID_Turma = models.ForeignKey(Turma, on_delete=models.CASCADE)
ID_Professor = models.ForeignKey(Professor, on_delete=models.CASCADE)
Hora_inicio = models.TimeField()
Hora_fim = models.TimeField()
Dia_semana = models.CharField(max_length=100)
Disciplina = models.CharField(max_length=100)
вот моя страница просмотров (где я предполагаю, что сделал что-то не так):
def timetable(request):
horario_entries = Horario.objects.all()
timetable_data = {}
for entry in horario_entries:
day_of_week = entry.Dia_semana
subject = entry.Disciplina
start_time = entry.Hora_inicio.strftime('%H:%M')
end_time = entry.Hora_fim.strftime('%H:%M')
timetable_data[day_of_week] = {}
timetable_data[day_of_week][start_time] = {}
timetable_data[day_of_week][start_time][end_time] = {}
timetable_data[day_of_week][start_time][end_time][subject] = {'entries': []}
# Append the entry to the 'entries' list
timetable_data[day_of_week][start_time][end_time][subject]['entries'].append(entry)
return render(request, 'testetimetable.html', {'timetable_data': timetable_data})
и, наконец, вот мой журнал ошибок:
Error during template rendering
In template C:\Users\danie\OneDrive\Documentos\PAP\teste16\django-soft-ui-dashboard-master\home\templates\testetimetable.html, error at line 26
Failed lookup for key [%s] in %r
16 <th>monday</th>
17 <th>tuesday</th>
18 <th>wednesday</th>
19 <th>thursday</th>
20 <th>friday</th>
21 <th>saturday</th>
22 <th>sunday</th>
23 </tr>
24 {% for x, schedule in timetable_data.items %}
25 <tr>
26 <th>{{ x.start_time|add:" - "|add:x.end_time }}</th>
27
28 {% for day, entries in schedule.items %}
29 <td>
30 {% for entry in entries %}
31 <!-- Here you can create buttons or display other information -->
32 <button>{{ entry.subject }}</button>
33 {% endfor %}
34 </td>
35 {% endfor %}
36 </tr>
Я попытался перевести большую часть материала на английский, чтобы легче было понять.
Я не уверен, есть ли более простой способ сделать то, что я задумал, так что если есть, я буду рад узнать