Django模型含start_time与end_time,如何在HTML输出时间序列?
实现方案
1. 在Django视图中生成15分钟间隔的时间序列
先把TimeField类型的start_time和end_time转为可计算的datetime对象,再通过循环逐步增加15分钟,生成完整的时间序列。
示例视图代码:
from datetime import datetime, timedelta from django.shortcuts import render from .models import Teacher def teacher_schedule(request, teacher_id): teacher = Teacher.objects.get(id=teacher_id) # 以当日日期为基准,将Time类型转为datetime对象 base_date = datetime.today().date() current_time = datetime.combine(base_date, teacher.start_time) end_time = datetime.combine(base_date, teacher.end_time) time_sequence = [] # 循环生成间隔15分钟的时间,包含结束时间 while current_time <= end_time: time_sequence.append(current_time.time()) # 仅保留时间部分 current_time += timedelta(minutes=15) return render(request, 'teacher_schedule.html', { 'teacher': teacher, 'time_sequence': time_sequence })
2. 在HTML模板中渲染内容
在模板里遍历生成的时间序列,按要求格式输出:
示例模板代码(teacher_schedule.html):
<p>{{ teacher.name }}</p> {% for time in time_sequence %} <p>{{ time|time:"H:i" }}</p> {% endfor %}
渲染后会得到如下效果:
Sally
17:00
17:15
17:30
17:45
18:00
内容的提问来源于stack exchange,提问作者union77
相关产品推荐
相关产品推荐

