Преглед на файлове

Refs #32074 -- Fixed handling memoryview content by HttpResponse on Python 3.10+.

An iterator was added to memoryview in Python 3.10,
see https://bugs.python.org/issue41732

Refs #30294
Mariusz Felisiak преди 4 години
родител
ревизия
1fd9b44a6b
променени са 1 файла, в които са добавени 4 реда и са изтрити 1 реда
  1. 4 1
      django/http/response.py

+ 4 - 1
django/http/response.py

@@ -351,7 +351,10 @@ class HttpResponse(HttpResponseBase):
     @content.setter
     def content(self, value):
         # Consume iterators upon assignment to allow repeated iteration.
-        if hasattr(value, '__iter__') and not isinstance(value, (bytes, str)):
+        if (
+            hasattr(value, '__iter__') and
+            not isinstance(value, (bytes, memoryview, str))
+        ):
             content = b''.join(self.make_bytes(chunk) for chunk in value)
             if hasattr(value, 'close'):
                 try: