ListView 如何获取参数
来源:6-2 完成动态列表页开发
李嘉图principal
2019-05-15
基础的view中可以在get方法中获取url传递的参数,需要向ListView中传递筛选参数应该怎么写呢?
写回答
3回答
-
ListView最底层就是继承的View
写法和平时的类视图写法是一样的
from django.views.generic import ListView # www.xxx.com/user?username="Zero" class AListView(ListView): def get(self, request): username = request.GET.get('username')
emmm...不过本来ListView是帮我们用最简单的代码实现了列表展示分页等功能,如果想通过url中的参数来重新定义查询集的话在你的类视图就需要重写def get_queryset()方法,或者直接定义queryset,可以多看几次老师的6-3 LiseView源码详解,然后自己顺着走一下。
class NewsListView(LoginRequiredMixin, ListView): """首页动态""" template_name = "news/news_list.html" # '模型类名_list.html' def get_queryset(self): user = self.request.GET.get('username') return Model_Name.objects.filter()
112019-05-16 -
Jack
2019-05-15
就是@1cho糖糖同学说的,不过是使用 self.request.GET.get('xxx') 每个方法里面都能使用self.request. 这是对于www.xxx.com/user?username=zero传参的方式。
对于www.xxx.com/user/zero/,要获取到zero,
路由urls.py使用
path('user/<str:username>/', views.XXXView.as_view(), name='xxx'),
视图views.py中使用
self.kwargs['username']
10 -
李嘉图principal
提问者
2019-05-15
这样拿到的参数和listview中的其他方法如何关联?如果只是重写get方法还不如直接用基础的view,请指教?
00
相似问题