Django-在视图中返回多个查询集

的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函数中访问queryset中每个项目的属性,但出现错误-


AttributeError: 'SearchQuerySet' object has no attribute 'feature'


很明显,我在做错事。有可能做我想做的事吗?还是仅使另一个函数返回此数据会更好?


慕田峪7331174
浏览 239回答 1
1回答

Helenr

您只能从返回一个查询集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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python