Hi Dilip,
A few days back I stuck at the same issue, then I tried with the queryset 
union functionality:


class MultiFilterPlacesListView(ListAPIView):
     """Custom queryset api view. Does not implement pagination"""

     pagination_class = None # Import custom pagination if you need the 
pagination.
     queryset = Places.objects.all()
     slice_size = 10  # count limit for each of the source queries

     def get_queryset(self):
         """Combine queries from new, editor choice and popular"""
         new_qs = self.queryset.filter(new_place=True)[:self.slice_size]
         editor_qs = self.queryset.filter(editor_choice=True)[:self.slice_size]
         popular_qs = self.queryset.filter(popular=True)[:self.slice_size]

         return new_qs.union(editor_qs, popular_qs, all=True) # Output will be 
union of the above two querysets


Doc: Django 
<https://docs.djangoproject.com/en/1.11/ref/models/querysets/#django.db.models.query.QuerySet.union>
Example: StackOverflow <https://stackoverflow.com/a/50240225/10353116>

Note:
if you are doing the union, then you won't get the pagination. In my case, 
I also needed pagination so I wrote custom pagination.


On Sunday, October 6, 2019 at 1:53:46 PM UTC+5:30, Dilipkumar Noone wrote:
>
> Dear Django Users,
>
> I am beginner in Django .
>
> I have multiple generic list views in my django application where each 
> list is handled under different navigation item of navigation bar .
>
> Still i need to handle few more list views using class based generic view.
>
> Is there any way to generalize or optimize in handling classbased 
> genericlistview which reduces the code size when we need to handle multiple
> lists in django application under each navigation item of navbar.?
>
> *Note*: Each navigation item(webpage) has a list  & above the list we 
> have a search form with filter button to search for a particular value.
>           Each list view handles get_query_set and get_context_data .      
>     
>           *get_query_set *displays to retrieve the list of objects for a 
> specific filter in a model when GET request occurs.
>
>           *get_context_data* used to display the list of  objects and 
> checks if request is GET and requested for a page in a list of pages listed 
> using pagination.
>           If key is a page continues the loop and it returns the context 
> with the list of objects for the requested page as a key.
>
>         
>
>
> ==========================================================================================================================================
> List1:
>
> class GSPDCList(ListView):
>
>
> List2:
>
> class GSPECList(ListView):
>
> List3:
>  =================:
>
> List4:
>  ================(ListView):
>
> *This concept i need to apply in my django app with multiple class based 
> generic views where each listview specific to diff model and filter 
> options.*
>
> *        So please suggest and optimized way of handling this requirement 
> to reduce the code size.*
>
>
> Regards,
> N.Dilip Kumar.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/21a32925-9fac-4c57-a03a-0aabf0d97642%40googlegroups.com.

Reply via email to