Как мне узнать длину содержимого объекта ответа Django?

В Django я пытаюсь регистрировать длину содержимого запроса и ответа, что в точности совпадает с тем, что сервер Django выводит на stderr.

[05/Apr/2011 22:59:08] "GET /pages/ HTTP/1.1" 200 332161
[05/Apr/2011 22:59:15] "GET /pages/12 HTTP/1.1" 301 0
[05/Apr/2011 22:59:15] "GET /pages/12/ HTTP/1.1" 200 361474
[05/Apr/2011 22:59:16] "GET /pages/12/load/tags/ HTTP/1.1" 200 13899
[05/Apr/2011 22:59:16] "GET /pages/12/load/comments/ HTTP/1.1" 200 82

Итак, я пишу простое промежуточное ПО, как показано ниже, но значение Content-Length всегда пустое.

class LogHttpResponse(object):
    def process_response(self, request, response):
        import datetime  
        print response.items()
        time_text = datetime.datetime.now().strftime('%m/%d/%Y %H:%M:%S')
        print '[%s] "%s %s" %d %s' % (time_text, request.method, request.path, 
                                      response.status_code, 
                                      response.get('Content-Length', ''))
        return response 

Я проверил через fire-debug, в заголовках ответа есть «Content-Length». Но в промежуточном программном обеспечении нет Content-Length, "print response.items ()" показывает:

[('Content-Type', 'text/html; charset=utf-8')]

Есть ли проблема с заказами промежуточного программного обеспечения?

10
задан William 5 April 2011 в 17:03
поделиться