Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I think it should be simpler but here's my function based view with filter

def withSub(request):
    post = Post.objects.filter(with_or_without_sub='WS')
    paginator = Paginator(post, 2)
    page = request.GET.get('page') 
    post = paginator.get_page(page)

    content_dict = {
        'posts':post,
        'paginator':paginator

    }
    return render(request, 'community/withSub.html', content_dict)

I simply want to switch it to class based view in a format as below, I just want to put filter to Post model as I did in function view

class PostListView(ListView):
    model = Post
    template_name = 'community/home.html'  # <app>/<model>_<viewtype>.html
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
141 views
Welcome To Ask or Share your Answers For Others

1 Answer

It could be something like the follows. You might need to test and debug. The request.GET is used, so it's get.

from django.views.generic.list import ListView

class PostListView(ListView):
    model = Post
    template_name = 'community/home.html'  # <app>/<model>_<viewtype>.html

    def get(self, request, *args, **kwargs):
        post = Post.objects.filter(with_or_without_sub='WS')
        paginator = Paginator(post, 2)
        page = request.GET.get('page') 
        post = paginator.get_page(page)

        content_dict = {
            'posts':post,
            'paginator':paginator

        }

        context = self.get_context_data()
        context.update(content_dict)
        return self.render_to_response(context)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...