diff options
| author | Carlton Gibson <carlton.gibson@noumenal.es> | 2023-03-21 20:51:53 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-03-21 20:52:59 +0100 |
| commit | ae824eceb1ddcaef336677bf9a6e704097cd2309 (patch) | |
| tree | becdd62c961abbe60c3d8da326a808d5aaa91657 /django | |
| parent | e829b0a239cffdeab5781df450a6b0e0026faa2d (diff) | |
[4.2.x] Fixed #34428 -- Made ASGIStaticFilesHandler adapt response to async iterator.
Bug in 0bd2c0c9015b53c41394a1c0989afbfd94dc2830.
Backport of 02c356f2f3945b8075735d485c3cf48cad991011 from main
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/staticfiles/handlers.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/django/contrib/staticfiles/handlers.py b/django/contrib/staticfiles/handlers.py index b7d9b5c18d..6343e048d9 100644 --- a/django/contrib/staticfiles/handlers.py +++ b/django/contrib/staticfiles/handlers.py @@ -103,4 +103,13 @@ class ASGIStaticFilesHandler(StaticFilesHandlerMixin, ASGIHandler): async def get_response_async(self, request): response = await super().get_response_async(request) response._resource_closers.append(request.close) + # FileResponse is not async compatible. + if response.streaming and not response.is_async: + _iterator = response.streaming_content + + async def awrapper(): + for part in await sync_to_async(list)(_iterator): + yield part + + response.streaming_content = awrapper() return response |
