gpt4 book ai didi

django - 如何将值从 get_queryset() 传递到 get_context_data()

转载 作者:行者123 更新时间:2023-12-05 08:54:24 24 4
gpt4 key购买 nike

因为 get_queryset() 只返回一个查询集,我需要查询集 search_store 的长度到模板文件。因此,我尝试通过 get_context_data 将值发送到模板。

我知道我可以通过 {{ queryset|length }} 得到一个查询集的长度,但是由于某些原因,它只返回一个由分页分隔的查询集的长度,所以我只得到一个部分长度。

如您所见,我正在尝试打印 search_stores.count(),我需要从 get_querysetget_context_data 中获取它>。任何人都可以让我知道我该怎么做吗?

class SearchListView(ListView):
model = Store
template_name = 'boutique/search.html'
paginate_by = 2
context_object_name = 'search_stores'

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['search_text'] = self.request.GET.get('search_text')
context['sorter'] = self.request.GET.get('sorter')
if not context['sorter']:
context['sorter'] = 'popularity'
return context

def get_queryset(self):

search_text = self.request.GET.get('search_text')
sorter = self.request.GET.get('sorter')

if not sorter:
sorter = 'popularity'

if search_text:
search_stores = Store.objects.filter(Q(businessName__icontains=search_text) | Q(mKey__icontains=search_text))
if sorter == 'businessName':
search_stores = search_stores.order_by(sorter)
else:
search_stores = search_stores.order_by(sorter).reverse()
else:
search_stores = ''

for store in search_stores:
store.mKey = store.mKey.split(' ')

print(search_stores.count())
return search_stores

最佳答案

如果问题是“如何将值从 get_queryset() 传递到 get_context_data()”,然后 get_queryset() 返回 object_list 并且您可以通过以下方式访问它:

    def get_context_data(self):
.....
something = self.object_list
.....

关于django - 如何将值从 get_queryset() 传递到 get_context_data(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50241208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com