我正在使用基于类的通用视图Listview
用于列出所有对象。
我的观点.py:
class PostsList(ListView):
model = Post
template_name = "index.html"
我的网址.py:
urlpatterns = [
url(r'^$',PostsList.as_view(), name = "home"),
]
这给了我所有帖子的列表。现在我想要过滤/排序基于某些领域的帖子Post
型号,说price
。这个需要我自己写吗?如果是的话哪种方法PostsLists
我要重写类吗?def get
, def get_context
?
我看到 Listview 的 get 方法定义如下。在其中我可以将 URL 查询参数传递为**kwargs
直接,否则我必须在我的班级中覆盖以下方法。
def get(self, request, *args, **kwargs):
....
您可以重写 get_queryset 方法:
保留可以在 url kwargs 中获取的所有参数的映射。
def get_queryset(self):
queryset = Post.objects.all()
if self.request.GET.get('price'):
queryset = queryset.filter(price=self.request.GET.get('price'))
return queryset
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)