Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass value from get_queryset() to get_context_data()

As get_queryset() returns only one queryset and I need the length of the queryset search_store to the template file. So, I'm trying to send the value to the template through get_context_data.

I know I can get a length of a queryset through {{ queryset|length }}, but for some reason, it only returns a length of queryset separated by pagination, so I only get a partial length.

As you see the code, I'm trying to print search_stores.count(), and I need get it in get_context_data from get_queryset. Can anyone let me know how I can do that?

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
like image 779
Jae P. Avatar asked Dec 20 '25 17:12

Jae P.


1 Answers

if question is "How to pass value from get_queryset() to get_context_data()", then get_queryset() returns object_list and you can access it following way:

    def get_context_data(self):
        .....
        something = self.object_list
        .....
like image 124
burney Avatar answered Dec 23 '25 08:12

burney



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!