我是第一次使用基于类的视图.我无法理解如何使用基于类的视图我将实现django-endless-pagination twitter样式分页.
我能举例说明一个人会怎么做?
这是我的看法:
class EntryDetail(DetailView):
"""
Render a "detail" view of an object.
By default this is a model instance looked up from `self.queryset`,but the
view will support display of *any* object by overriding `self.get_object()`.
"""
context_object_name = 'entry'
template_name = "blog/entry.html"
slug_field = 'slug'
slug_url_kwarg = 'slug'
def get_object(self,query_set=None):
"""
Returns the object the view is displaying.
By default this requires `self.queryset` and a `pk` or `slug` argument
in the URLconf,but subclasses can override this to return any object.
"""
slug = self.kwargs.get(self.slug_url_kwarg,None)
return get_object_or_404(Entry,slug=slug)
最佳答案
由于这是一个广泛的问题,我现在想结合几种分页解决方案.
原文链接:https://www.f2er.com/python/439589.html1.使用通用ListView:
from django.views.generic import ListView
class EntryList(ListView):
model = Entry
template_name = 'blog/entry_list.html'
context_object_name = 'entry_list'
paginate_by = 10
仅使用urls.py会更快:
url(r'^entries/$',ListView.as_view(model=Entry,paginate_by=10))
所以基本上你不需要在这个解决方案中使用django-endless-pagination.您可以在此处查看模板示例:How do I use pagination with Django class based generic ListViews?
2.使用django-endless-pagination的AjaxListView:
from endless_pagination.views import AjaxListView
class EntryList(AjaxListView):
model = Entry
context_object_name = 'entry_list'
page_template = 'entry.html'
或者更快(再次)使用urls.py:
from endless_pagination.views import AjaxListView
url(r'^entries/$',AjaxListView.as_view(model=Entry))
参考:http://django-endless-pagination.readthedocs.org/en/latest/generic_views.html