python – django-endless与基于类的视图示例

前端之家收集整理的这篇文章主要介绍了python – django-endless与基于类的视图示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我是第一次使用基于类的视图.我无法理解如何使用基于类的视图我将实现django-endless-pagination twitter样式分页.

我能举例说明一个人会怎么做?

这是我的看法:

@H_502_9@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)
最佳答案
由于这是一个广泛的问题,我现在想结合几种分页解决方案.

1.使用通用ListView

@H_502_9@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会更快:

@H_502_9@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

@H_502_9@from endless_pagination.views import AjaxListView class EntryList(AjaxListView): model = Entry context_object_name = 'entry_list' page_template = 'entry.html'

或者更快(再次)使用urls.py:

@H_502_9@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

如果有人知道不同的解决方案,请评论.

猜你在找的Python相关文章