Skip to content Skip to sidebar Skip to footer

Best Way To Write Views For Multiple Queries In Django?

It's a simple question. I've organised my models so that most objects served to the page are of one type - Item. The model contains various attributes which help me serve it in dif

Solution 1:

You can use URL querystring(ie request.GET) to get type of the item from url and filter by it. Like this:

path('new/', views.ItemListView.as_view(), name='new_list'),


classItemListViewArticle(generic.ListView):defitem(self, request, *args, **kwargs):
        return index(request)

    defget_queryset(self):
        content_type = self.request.GET.get('type')
        return Item.objects.filter(type__contains=content_type).order_by('-create_date')

# usagelocalhost:8000/new/?type=article
localhost:8000/new/?type=video

Or you can use URL parameter to get the type of data:

path('new/<str:content_type>/', views.ItemListView.as_view(), name='new_list'),

classItemListViewArticle(generic.ListView):defitem(self, request, *args, **kwargs):
        return index(request)

    defget_queryset(self):
        content_type = self.kwargs.get('content_type')
        return Item.objects.filter(type__contains=content_type).order_by('-create_date')

# usagelocalhost:8000/new/article/
localhost:8000/new/video/

Post a Comment for "Best Way To Write Views For Multiple Queries In Django?"