我定义了一个称为Visit的模型。有几种型号。
在models.py中
class Visit(models.Model):
case = models.ForeignKey(Case, on_delete = models.CASCADE)
location = models.ForeignKey(Location, on_delete = models.CASCADE)
date_from = models.DateField()
date_to = models.DateField()
category = models.CharField(max_length = 20)
然后,我制作了一个视图模板。它是查看特定案例的所有访问。因此,如果url为“ sth / visit / 1”,那么它将显示所有pk1案例的访问。
在views.py中
class VisitView(TemplateView):
template_name = "visit.html"
def get_context_data(self, **kwargs):
case_pk = self.kwargs['case']
context = super().get_context_data(**kwargs)
context['visit_list'] = Visit.objects.filter(case = case_pk)
print("context[visit_list]: ",context['visit_list'])
我在控制台中为URL“ sth / visit / 1”打印了context ['visit_list'],它显示了
context[visit_list]: <QuerySet [<Visit: Visit object (1)>, <Visit: Visit object (2)>]>
对于网址“ sth / visit / 2”,它显示
context[visit_list]: <QuerySet [<Visit: Visit object (3)>]>
因此,我认为到目前为止,它仍然有效。但在html文件中
<ul>
{% for visit in visit_list %}
<li>[{{visit.date_from }}] {{ visit.date_to }} </li>
{% empty %}
<li>No visit yet.</li>
{% endfor %}
</ul>
它显示尚无访问。对于1和2。没有错误消息。只是没有访问。我可以知道是什么问题吗?非常感谢您,请帮助TOT。我已经在这里停留了几个小时。
是的,因为您没有将上下文返回模板,因此无法访问上下文变量
class VisitView(TemplateView):
template_name = "visit.html"
def get_context_data(self, **kwargs):
case_pk = self.kwargs['case']
context = super().get_context_data(**kwargs)
context['visit_list'] = Visit.objects.filter(case = case_pk)
print("context[visit_list]: ",context['visit_list'])
return context
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句