Skip to content

List

AsyncListView

AsyncListView generic view

from django_async_extensions.views.generic import AsyncListView

class MyListView(AsyncListView):
    model = MyModel

AsyncListView works similarly to django's ListView but with a few differences:

  1. get_queryset() method is async.
  2. paginate_queryset() method is async.
  3. get_context_data() method is async.
  4. get() method is async.
  5. AsyncPaginator is used for pagination instead of django's regular Paginator.
  6. the inheritance tree is different so the ancestors behaviour also applies here.

Ancestors (MRO):

  1. django-async-extensions.views.generic.list.AsyncMultipleObjectTemplateResponseMixin
  2. django-async-extensions.views.generic.base.AsyncTemplateResponseMixin
  3. django.views.generic.base.TemplateResponseMixin
  4. django_async_extensions.views.generic.list.AsyncBaseListView
  5. django_async_extensions.views.generic.list.AsyncMultipleObjectMixin
  6. django_async_extensions.views.generic.base.AsyncContextMixin
  7. django_async_extensions.views.generic.base.AsyncView
  8. django.views.generic.base.View

Base classes

some of the base classes for ListView have been re-written as async:

AsyncBaseListView

like BaseListView but get() method is async.