python - Django - 在视图中返回多个查询集
问题描述
姜戈 1.10
在我看来,我有一个函数get_queryset()
,目前返回一个查询集。这个函数是从另一个函数调用的,该函数get_context()
接受该数据,使用它来获取一些值,并将所有内容返回到前端。
但是,我现在想从 中返回 2 个查询集get_queryset()
,一个是完整的查询集,另一个是应用了过滤器的查询集。
我以为我可以简单地做类似的事情:
full_results = query.all()
# do some filtering
filter_results = full_results.someFilter()
return full_results, filter_results
但是,我还有另一个功能,这些结果在发送到前端之前先发送到 FIRST。我想我可以使用括号符号轻松访问这些查询集,就像这样 -
faceted = self.get_queryset()[0].facet('thing')
然而!事实证明我无法这样做。我正在尝试在第二个 django 函数中访问查询集中每个项目的属性,但出现错误 -
AttributeError: 'SearchQuerySet' object has no attribute 'feature'
很明显我做错了什么。有可能做我想做的事吗?还是只创建另一个函数来返回这些数据会更好?
解决方案
您只能从get_queryset
. 但get_context_data
它本身可以扩展以添加任何你喜欢的东西。
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['filter_results'] = context['full_results'].someFilter()
return context
推荐阅读
- android - Android - MVP - Fragments、Presenter 和 ViewPager
- python-3.x - Numpy FFT 零填充
- javascript - 单击正文时关闭模态
- java - 如何在Android中堆叠吐司?
- javascript - 密码确认角材料
- python - 在 Python 中,“*largs”和“*args”或“*kwargs”有什么区别?
- ibm-midrange - 在 DSPF 上进行 AS400 级别检查
- excel - 将数据从 excel 输入到 SAP GUI,然后将特定的行和列输出回 excel
- php - php告诉函数和字符串
- python - 用petl将一个值插入一行?