本文介绍了将基于函数的视图转换为基于类的视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我认为它应该更简单,但这是我基于函数的带有过滤器的视图
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)
我只是想以以下格式将其切换到基于类的视图,我只想像在函数视图中一样将过滤器放入Post模型中
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
推荐答案
可能类似于以下内容.您可能需要测试和调试.使用 request.GET
即可.
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)
这篇关于将基于函数的视图转换为基于类的视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!