【发布时间】:2020-11-29 04:44:56
【问题描述】:
我有一个基于类的视图,用于获取查询集并传递给 django-tables2 以呈现结果。这方面一切正常。我正在尝试将来自不同查询集的记录实例传递给模板,因此我可以在 django-tables2 生成的表上方显示信息。
在搜索时,似乎“正确”的方法是通过get_context_data 方法。但是,当我尝试将此方法添加到我的视图中时,只需获取查询集并返回它,就会产生错误Expected table or queryset, not str。我将其隔离为由于我的模板中的{% render_table table %}。没有它,我可以按预期访问我的“团队”对象。
为什么会这样?在我添加我的 get_context_data 方法之前,qs 查询集被很好地传递给了 django-tables2。 qs 查询集是否也必须通过 get_context_data 返回?如果有,为什么?
这是我的尝试:
class myteam(LoginRequiredMixin, SingleTableView):
def get_queryset(self):
qs = Contestant.objects.filter(assigned_team=self.request.user.contestant.assigned_team)
qs = qs.exclude(id=self.request.user.contestant.id)
return qs
def get_template_names(self):
return 'xgames/viewteam.html'
def get_table_class(self):
return TeamsTable
def get_context_data(self):
team = Team.objects.get(id=self.request.user.contestant.assigned_team.id)
return {"team": team}
【问题讨论】:
标签: django django-views django-templates django-tables2