采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
基础的view中可以在get方法中获取url传递的参数,需要向ListView中传递筛选参数应该怎么写呢?
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()
非常感谢!
就是@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']
这样拿到的参数和listview中的其他方法如何关联?如果只是重写get方法还不如直接用基础的view,请指教?
登录后可查看更多问答,登录/注册
融合Django高级用法/算法/设计模式/TestCase测试/云计算打造项目
3.4k 15
8.7k 1
2.9k 6
2.2k 4
2.3k 2
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号