Python Django render()未将变量传递给模板?
上面(省略了非相关代码)是我一直在编写的Django视图中的一个函数。它应该将days字典发送到template calendar.html(如下所示),但事实并非如此——我已经通过print(days)语句确认了days的生成是正确的,并且函数正在被调用。我也没有收到任何错误Python Django render()未将变量传递给模板?,python,django,python-3.x,Python,Django,Python 3.x,上面(省略了非相关代码)是我一直在编写的Django视图中的一个函数。它应该将days字典发送到template calendar.html(如下所示),但事实并非如此——我已经通过print(days)语句确认了days的生成是正确的,并且函数正在被调用。我也没有收到任何错误 def get_queryset(self): ... #days = {day1 : [[FreetimeStart, FreetimeEnd], [[Meeting1Start, Me
def get_queryset(self):
...
#days = {day1 : [[FreetimeStart, FreetimeEnd], [[Meeting1Start, Meeting1End], ...]], ...}
days = {}
for i in range(len(compilation)):
days[daylist[i]] = compilation[i]
print(days)
return render(self.request, 'calendar.html', {"days":days})
{{days}
{天数%中的键为%1}
{{key}}
{%endfor%}
{%表示天数中的值。值%}
{%if值为0%}
空闲时间:{value.0.0}}到{{value.0.1}
{%else%}
空闲时间:无
{%endif%}
{%endfor%}
{%表示天数中的值。值%}
{值为%1%的会议}
从{{Meeting.0}}到{{Meeting.1}的会议
{%endfor%}
{%endfor%}
我做错了什么?我的render()参数似乎没有任何问题。
get\u queryset
应返回queryset,例如MyModel.objects.all()
。在那里调用render()
没有意义。啊,我明白了。因此,如果我将get_queryset()更改为get(),它应该会起作用?编辑:是的,确认了。我以前不知道函数名在基于类的视图中如此重要。请尽量避免在基于类的视图中重写get()
,否则可能会导致重复代码或丢失父类的功能。在您的情况下,可能需要覆盖并向上下文中添加days
。
{{ days }}
<table>
<tr>
{% for key in days %}
<th>
{{ key }}
</th>
{% endfor %}
</tr>
<tr>
{% for value in days.values %}
<td>
{% if value.0 %}
Free time: {{ value.0.0 }} to {{ value.0.1 }}
{% else %}
Free time: None
{% endif %}
</td>
{% endfor %}
</tr>
<tr>
{% for value in days.values %}
<td>
{% for meeting in value.1 %}
Meeting from {{ meeting.0 }} to {{ meeting.1 }}</br>
{% endfor %}
</td>
{% endfor %}
</tr>
</table>