Skip to content

Commit c3f6f9b

Browse files
committed
documented async rendering
1 parent a637567 commit c3f6f9b

File tree

8 files changed

+56
-47
lines changed

8 files changed

+56
-47
lines changed

docs/views/async-class-based-views/base.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ class MyTemplateView(AsyncTemplateView):
3232

3333
*Ancestors (MRO)*:
3434

35-
1. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
36-
2. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
35+
1. [django_async_extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple#asynctemplateresponsemixin)
36+
2. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple#asynccontextmixin)
3737
3. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
3838
4. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
3939

@@ -56,9 +56,3 @@ class ThisRedirectView(AsyncRedirectView):
5656
1. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
5757
2. [django.views.generic.base.RedirectView](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#redirectview)
5858
3. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
59-
60-
## Base classes
61-
62-
### AsyncContextMixin
63-
an async version of django's [ContextMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin)
64-
the only difference is that the `get_context_data()` method is async.

docs/views/async-class-based-views/detail.md

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,18 @@ class MyDetailView(AsyncDetailView):
1818

1919
*Ancestors (MRO)*:
2020

21-
1. [django.views.generic.detail.SingleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
22-
2. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
21+
1. [django-async-extensions.aviews.generic.detail.AsyncSingleObjectTemplateResponseMixin](mixins-single-object.md#asyncsingleobjecttemplateresponsemixin)
22+
2. [django-async-extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
2323
3. [django_async_extensions.aviews.generic.detail.AsyncBaseDetailView](detail.md#asyncbasedetailview)
24-
4. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](detail.md#asyncsingleobjectmixin)
25-
5. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
24+
4. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](mixins-single-object#asyncsingleobjectmixin)
25+
5. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
2626
6. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
2727
7. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
2828

2929

3030
## Base classes
3131
some of the base classes for `DetailView` have been re-written as async:
3232

33-
#### AsyncSingleObjectMixin
34-
35-
like [SingleObjectMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin)
36-
with these differences:
37-
38-
* inherits from [AsyncContextMixin](base.md#asynccontextmixin)
39-
* `get_object()` method is async.
40-
* `get_queryset()` method is async.
41-
* `get_context_data()` method is async.
42-
4333
#### AsyncBaseDetailView
4434

4535
like [BaseDetailView](https://docs.djangoproject.com/en/5.1/ref/class-based-views/generic-display/#django.views.generic.detail.BaseDetailView) but `get()` is async and the ancestors are different.

docs/views/async-class-based-views/edit.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ but the inheritance tree has changed to work asynchronously.
2626

2727
*Ancestors (MRO)*:
2828

29-
1. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
29+
1. [django-async-extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
3030
2. [django_async_extensions.aviews.generic.edit.AsyncBaseFormView](edit.md#asyncbaseformview)
3131
3. [django_async_extensions.aviews.generic.edit.AsyncFormMixin](mixins-editing.md#asyncformmixin)
3232
4. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
@@ -86,13 +86,13 @@ also the inheritance tree is different to support async operation.
8686

8787
*Ancestors (MRO)*:
8888

89-
1. [django.views.generic.detail.SingleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
90-
2. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
89+
1. [django-async-extensions.aviews.generic.detail.AsyncSingleObjectTemplateResponseMixin](mixins-single-object.md#asyncsingleobjecttemplateresponsemixin)
90+
2. [django-async-extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
9191
3. [django_async_extensions.aviews.generic.edit.AsyncBaseCreateView](edit.md#asyncbasecreateview)
9292
4. [django_async_extensions.aviews.generic.edit.AsyncModelFormMixin](mixins-editing.md#asyncmodelformmixin)
9393
5. [django_async_extensions.aviews.generic.edit.AsyncFormMixin](mixins-editing.md#asyncformmixin)
94-
6. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](detail.md#asyncsingleobjectmixin)
95-
7. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
94+
6. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](mixins-single-object.md#asyncsingleobjectmixin)
95+
7. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
9696
8. [django_async_extensions.aviews.generic.edit.AsyncProcessFormMixin](mixins-editing.md#asyncprocessformview)
9797
9. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
9898
10. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
@@ -142,13 +142,13 @@ also the inheritance tree is different to support async operation.
142142

143143
*Ancestors (MRO)*:
144144

145-
1. [django.views.generic.detail.SingleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
146-
2. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
145+
1. [django-async-extensions.aviews.generic.detail.AsyncSingleObjectTemplateResponseMixin](mixins-single-object.md#asyncsingleobjecttemplateresponsemixin)
146+
2. [django-async-extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
147147
3. [django_async_extensions.aviews.generic.edit.AsyncBaseUpdateView](edit.md#asyncbasecreateview)
148148
4. [django_async_extensions.aviews.generic.edit.AsyncModelFormMixin](mixins-editing.md#asyncmodelformmixin)
149149
5. [django_async_extensions.aviews.generic.edit.AsyncFormMixin](mixins-editing.md#asyncformmixin)
150-
6. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](detail.md#asyncsingleobjectmixin)
151-
7. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
150+
6. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](mixins-single-object.md#asyncsingleobjectmixin)
151+
7. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
152152
8. [django_async_extensions.aviews.generic.edit.AsyncProcessFormMixin](mixins-editing.md#asyncprocessformview)
153153
9. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
154154
10. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
@@ -191,16 +191,16 @@ but it's been modified to work as an async view.
191191

192192
*Ancestors (MRO)*:
193193

194-
1. [django.views.generic.detail.SingleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
195-
2. [django_async_extensions.aviews.generic.edit.AsyncBaseDeleteView]()
194+
1. [django-async-extensions.aviews.generic.detail.AsyncSingleObjectTemplateResponseMixin](mixins-single-object.md#asyncsingleobjecttemplateresponsemixin)
195+
2. [django_async_extensions.aviews.generic.edit.AsyncBaseDeleteView](edit.md#asyncdeleteview)
196196
3. [django_async_extensions.aviews.generic.edit.AsyncDeletionMixin](mixins-editing.md#asyncdeletionmixin)
197197
4. [django_async_extensions.aviews.generic.edit.AsyncFormView](mixins-editing.md#asyncdeletionmixin)
198-
5. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
198+
5. [django-async-extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
199199
6. [django_async_extensions.aviews.generic.edit.AsyncBaseFormView](edit.md#asyncbaseformview)
200200
7. [django_async_extensions.aviews.generic.edit.AsyncFormMixin](mixins-editing.md#asyncformmixin)
201201
8. [django_async_extensions.aviews.generic.detail.AsyncBaseDetailView](detail.md#asyncbasedetailview)
202-
9. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](detail.md#asyncsingleobjectmixin)
203-
10. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
202+
9. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](mixins-single-object.md#asyncsingleobjectmixin)
203+
10. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
204204
11. [django_async_extensions.aviews.generic.edit.AsyncProcessFormMixin](mixins-editing.md#asyncprocessformview)
205205
12. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
206206
13. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
@@ -219,7 +219,7 @@ but the ancestors are different.
219219

220220
1. [django_async_extensions.aviews.generic.edit.AsyncBaseFormView](edit.md#asyncbaseformview)
221221
2. [django_async_extensions.aviews.generic.edit.AsyncFormMixin](mixins-editing.md#asyncformmixin)
222-
3. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
222+
3. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
223223
4. [django_async_extensions.aviews.generic.edit.AsyncProcessFormMixin](mixins-editing.md#asyncprocessformview)
224224
5. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
225225
6. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
@@ -234,8 +234,8 @@ similar to django's [BaseCreateView](https://docs.djangoproject.com/en/5.1/ref/c
234234

235235
1. [django_async_extensions.aviews.generic.edit.AsyncModelFormMixin](mixins-editing.md#asyncmodelformmixin)
236236
2. [django_async_extensions.aviews.generic.edit.AsyncFormMixin](mixins-editing.md#asyncformmixin)
237-
3. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
238-
4. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](detail.md#asyncsingleobjectmixin)
237+
3. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
238+
4. [django_async_extensions.aviews.generic.detail.AsyncSingleObjectMixin](mixins-single-object.md#asyncsingleobjectmixin)
239239
5. [django_async_extensions.aviews.generic.edit.AsyncProcessFormMixin](mixins-editing.md#asyncprocessformview)
240240
6. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
241241
7. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)

docs/views/async-class-based-views/list.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,17 @@ class MyListView(AsyncListView):
2020

2121
*Ancestors (MRO)*:
2222

23-
1. [django.views.generic.list.MultipleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
24-
2. [django.views.generic.base.TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
23+
1. [django-async-extensions.aviews.generic.list.AsyncMultipleObjectTemplateResponseMixin](mixins-multiple-object.md#asyncmultipleobjecttemplateresponsemixin)
24+
2. [djangoasync-extensions.aviews.generic.base.AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
2525
3. [django_async_extensions.aviews.generic.list.AsyncBaseListView](list.md#asyncbaselistview)
26-
4. [django_async_extensions.aviews.generic.list.AsyncMultipleObjectMixin](list.md#asyncmultipleobjectmixin)
27-
5. [django_async_extensions.aviews.generic.base.AsyncContextMixin](base.md#asynccontextmixin)
26+
4. [django_async_extensions.aviews.generic.list.AsyncMultipleObjectMixin](mixins-multiple-object.md#asyncmultipleobjectmixin)
27+
5. [django_async_extensions.aviews.generic.base.AsyncContextMixin](mixins-simple.md#asynccontextmixin)
2828
6. [django_async_extensions.aviews.generic.base.AsyncView](base.md#asyncview)
2929
7. [django.views.generic.base.View](https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View)
3030

3131

3232
## Base classes
3333
some of the base classes for `ListView` have been re-written as async:
3434

35-
### AsyncMultipleObjectMixin
36-
like [MultipleObjectMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) but `get_queryset()`, `paginate_queryset()` and `get_context_data()` methods are async.
37-
3835
### AsyncBaseListView
3936
like [BaseListView](https://docs.djangoproject.com/en/5.1/ref/class-based-views/generic-display/#django.views.generic.list.BaseListView) but `get()` method is async.

docs/views/async-class-based-views/mixins-editing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ A form mixin that works on ModelForms, rather than a standalone form.
1818
`AsyncModelFormMixin` similar to django's [ModelFormMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-editing/#modelformmixin)
1919
with a number of differences:
2020

21-
1. `AsyncModelFormMixin` inherits from [AsyncFormMixin](mixins-editing.md#asyncformmixin) and [AsyncSingleObjectMixin](detail.md#asyncsingleobjectmixin) so anything mentioned on those classes also applies here.
21+
1. `AsyncModelFormMixin` inherits from [AsyncFormMixin](mixins-editing.md#asyncformmixin) and [AsyncSingleObjectMixin](mixins-single-object.md#asyncsingleobjectmixin) so anything mentioned on those classes also applies here.
2222
2. `get_form_class()` method is async.
2323

2424
## AsyncProcessFormView
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## AsyncMultipleObjectMixin
2+
like [MultipleObjectMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) but `get_queryset()`, `paginate_queryset()` and `get_context_data()` methods are async.
3+
4+
## AsyncMultipleObjectTemplateResponseMixin
5+
like django's [AsyncMultipleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-multiple-object/#multipleobjecttemplateresponsemixin)
6+
but inherits from [AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
## AsyncContextMixin
2+
an async version of django's [ContextMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin)
3+
the only difference is that the `get_context_data()` method is async.
4+
5+
6+
## AsyncTemplateResponseMixin
7+
an async version of django's [TemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-simple/#templateresponsemixin)
8+
the `render_to_response` method has been turned async to make database connections possible.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## AsyncSingleObjectMixin
2+
3+
like [SingleObjectMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin)
4+
with these differences:
5+
6+
* inherits from [AsyncContextMixin](mixins-simple.md#asynccontextmixin)
7+
* `get_object()` method is async.
8+
* `get_queryset()` method is async.
9+
* `get_context_data()` method is async.
10+
11+
## AsyncSingleObjectTemplateResponseMixin
12+
13+
like django's [SingleObjectTemplateResponseMixin](https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
14+
but inherits from [AsyncTemplateResponseMixin](mixins-simple.md#asynctemplateresponsemixin)

0 commit comments

Comments
 (0)