Login

Fix for GZipMiddleware when serving files or streaming or using iterators

Author:
wojtek
Posted:
November 5, 2009
Language:
Python
Version:
1.1
Score:
0 (after 0 ratings)

A simple replacement for Django's default GZipMiddleware which breaks when trying to serve files or pass any kind of iterators to the HttpResponse object.

Simply replace GZipMiddleware with the provided middleware and set response.dontgzip = True when returning the response, and it will then be ignored by the middleware.

1
2
3
4
5
6
7
from django.middleware.gzip import GZipMiddleware

class FixedGZipMiddleware(GZipMiddleware):
    def process_response(self, request, response):
        if hasattr(response, 'dontgzip'):
            return response
        return GZipMiddleware.process_response(self, request, response)

More like this

  1. Mask sensitive data from logger by agusmakmun 1 week, 6 days ago
  2. Template tag - list punctuation for a list of items by shapiromatron 1 year, 2 months ago
  3. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 1 year, 2 months ago
  4. Serializer factory with Django Rest Framework by julio 1 year, 9 months ago
  5. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 10 months ago

Comments

Please login first before commenting.