84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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实现分页