[英]Django template doesn't output values to HTML table cells
我有以下模板:
<table>
<tr>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
<th>Sunday</th>
</tr>
{% for row in table %}
<tr>
{% for i in week_length %}
<td>{{row.i}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
以下观点:
def calendar(request):
template_name = 'workoutcal/calendar.html'
today_date = timezone.now()
today_year = today_date.year
today_month = today_date.month
today_day = today_date.day
table = maketable(today_date) # Creates something like: [[None, 1, 2, 3, 4, 5, 6],[7, 8, ...],...,[28, 29, 30, 31, None, None, None]]
template = loader.get_template('workoutcal/calendar.html')
#Workout.objects.filter("Workouts lie between certain dates")
context = {
'workout_list': Workout.objects.filter(date__year = today_year, date__month = today_month, date__day = today_day),
'table': table, # The calendar
'week_length': range(7),
}
return HttpResponse(template.render(context, request))
当我访问页面( localhost:8000/workoutcal
)时,除了表头之外什么都不输出。 它看起来像这样:
我无法弄清楚为什么Django没有把我的输出放到单元格中。 我不希望列表元素的输出为None
,然后只是所有其他元素的元素内容(都是字符串)。 有任何想法吗?
你正在重复错误的事情。 您的日历是列表清单; 你应该遍历每一行,然后迭代该行中的每一列。 week_length
完全无关紧要。
{% for week in table %}
<tr>
{% for day in week %}
<td>{{ week }}</td>
{% endfor %}
</tr>
{% endfor %}
您没有正确访问row
对象中的项目。 它们在索引i
不在名为i
的属性处。
您可以执行以下操作:
{% for i in row %}
<td>{{ i }}</td>
{% endfor %}
因为row
是您要访问的元素列表。 这将避免传递week_length
变量的需要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.