我正在尝试将自由空间打印为表格中每行之间的缓冲区。我有办法在django模板中执行此操作吗? 这是我目前的代码。
<table id="upcomingtable" border="1" style="border-collapse:collapse;">
<tr>
<th>Course</th>
<th>Title</th>
<th>Professor</th>
<th>Start</th>
<th>End</th>
</tr>
{% for next in upcoming %}
<tr>
<td>{{ next.course }}</td>
<td>{{ next.title }}</td>
<td>{{ next.prof }}</td>
<td>{{ next.stime }}</td>
<td>{{ next.etime }}</td>
</tr>
<tr><td></tr> <!--Buffer here-->
{% endfor %}
</table>
这是我目前即将发布的查询:
upcoming = Class.objects.filter(building__exact=b, floor__exact=f, room__exact=r, days__icontains=dayletter(day), etime__gt=datetime.datetime.now().time()).distinct().order_by('stime')
基本上我想采用结束时间(etime)并找到它与下一个开始时间之间的差异,该下一个开始时间与下一个开始时间一起迭代,并在这些行之间建立一个缓冲区。 例如,结束时间现在是下午3:00,下一个开始时间是下午3:15。我想在打印出实际行之前创建一个行缓冲区。
Ex.
3:00 info info info
blank
blank
blank
3:15 info info info
用于在views.py中循环
for i, item in enumerate(range(len(upcoming)-1)):
s1 = upcoming[i].etime
s2 = upcoming[i+1].stime
d2 = s2.hour*60 + s2.minute
d1 = s1.hour*60 + s1.minute
d = d2 - d1
if (d>0):
upcoming[i].span = d/5
谢谢大家,感谢你的帮助!
答案 0 :(得分:0)
如果我理解正确,空行数取决于记录之间的时差,对吧?如果是这样,你可以尝试这样的事情:
upcoming = list(upcoming)
for i, item in enumerate(upcoming[:-1]):
item.span = range(1, upcoming[i+1].sdate - item.edate) #actually, get the time difference in minutes and divide by some coefficient - how many minutes should pass for the new blank row to be inserted
然后在模板中:
{% for row in next.span %}
<tr><td colspan="5"> </td></tr>
{% endfor %}