84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
django-pagination分页url默认显示方式,例如?page=2 可以改成/page/2的形式么?
这两种用法的场景不一样
?page=2 这里的page=2是以url的参数传递,你可以在django view里面的request.kwargs里面得到,一般用于传递普通参数: request.kwargs['page'] # 2
/page/2/ 这个『2』是url的本体,这种用法一般是配合django class-based view来使用,自动将这个『2』对应的django model object解析出来 例如url.py:
url(r'^user/(?P<pk>\d+)/edit/$', views.YourView.as_view(), name='your_view')
views.py:
from django.views.generic import DetailView class YourView(DetailView): def get_object(self, queryset=None): pk = self.kwargs.get(self.pk_url_kwarg, None) if int(pk) == 0: return None return super(Yourview, self).get_object(queryset)
这里的get_object方法做的就是类似的事情,这样你就能直接通过self.object来访问这个对象了 可以参考官方文档https://docs.djangoproject.com/en/1.7/topics/class-based-views/generic-display/
感觉应该跟分页类没有关系,只是page参数怎么传的问题,可以通过URLConf传,也可以通过QueryString创,取到这个参数后,再用pagination实现分页
这两种用法的场景不一样
?page=2
这里的page=2是以url的参数传递,你可以在django view里面的request.kwargs里面得到,一般用于传递普通参数:
request.kwargs['page'] # 2
/page/2/
这个『2』是url的本体,这种用法一般是配合django class-based view来使用,自动将这个『2』对应的django model object解析出来
例如url.py:
views.py:
这里的get_object方法做的就是类似的事情,这样你就能直接通过self.object来访问这个对象了
可以参考官方文档
https://docs.djangoproject.com/en/1.7/topics/class-based-views/generic-display/
感觉应该跟分页类没有关系,只是page参数怎么传的问题,可以通过URLConf传,也可以通过QueryString创,取到这个参数后,再用pagination实现分页