将 get_context_data 方法添加到基于类的视图会破坏 django-tables2

杰克·兰金

我有一个基于类的视图,用于获取查询集并传递给呈现结果的 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}
JPG

好像你忘了调用 super() 方法

class myteam(LoginRequiredMixin, SingleTableView):
    # Rest of the code

    def get_context_data(self):
        context = super().get_context_data()
        context["team"] = Team.objects.get(
            id=self.request.user.contestant.assigned_team.id
        )
        return context

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django:将kwargs参数从get_context_data()添加到ModelForm

Django:将变量从get_context_data()传递到post()

Django视图:get_context_data()vs get()

让 Django Tables2 工作

get_context_data 方法在 Django 中不起作用

Django:在基于类的视图中的get_context_data中放置更多上下文

如何将datetime.combine添加到ListView中的get_context_data

Django tables2 为另一个模型添加自定义列

Django Tables2复制结果

如何在Django中将2列求和get_context_data()

使用get_context_data()方法在DetailView Django中检索依赖对象的列表

Django 关于 get_context_data()

Django DetailView get_context_data

Django的get_context_data错误

使用 Django 将查询字符串参数添加到基于类的详细视图

类对象属性的`get_context_data`

带有 Django tables2 的动态表

修改字段在 Django tables2 表上的显示方式

优化Django查询以避免在使用详细信息视图并覆盖get_context_data时出现重复

Django-在get_context_data内过滤

如何使用 get_context_data 实现 Django 模板

Django覆盖get_context_data()不在模板中呈现

在Django中无法使用get_context_data

如何在 Django 中使用 get_context_data()?

将数据从post()传递到get_context_data()

从TemplateView的post()到get_context_data()方法的变量

django CBV 中的 extra_context 和 get_context_data(**kwargs) 有什么区别

处理基于类的视图的get_context_data中引发的异常

如何使用 get_context_data 在基于分类的视图中添加分页