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

2024-03-27

我第一次使用基于类的视图。我无法理解如何使用基于类的视图来实现django-无尽分页 http://django-endless-pagination.readthedocs.org/en/latest/twitter_pagination.htmlTwitter 样式分页。

我可以举个例子来说明如何解决这个问题吗?

这是我的观点:

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 https://docs.djangoproject.com/en/dev/ref/class-based-views/generic-display/#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 。您可以在此处查看模板示例:如何使用基于 Django 类的通用 ListView 的分页? https://stackoverflow.com/questions/5907575/how-do-i-use-pagination-with-django-class-based-generic-listviews

2.使用django-endless-paginationAjax列表视图 http://django-endless-pagination.readthedocs.org/en/latest/generic_views.html:

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

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

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 http://django-endless-pagination.readthedocs.org/en/latest/generic_views.html

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django-endless 与基于类的视图示例 的相关文章

随机推荐