2016-03-19 41 views
0

我正在使用django信號,並希望request_finished信號處理器只有在發出給定的http請求時才執行某些操作。任何想法如何做到這一點?我以爲我可以使用WSGIHandler這是這個信號的發送者,但無法處理來自它的請求參數。django信號request_finished

回答

1

有沒有辦法讓請求,比如在request_finished信號,因爲根據the docs與此信號發送的唯一參數是sender

sender 
The handler class – e.g. django.core.handlers.wsgi.WsgiHandler – that handled the request. 

注意,在發件人收到類別發件人的,不一個實例。

您可以依次用process_response()方法寫custom middleware能夠檢查請求選項,如下所示:

class MyCustomMiddleware(object): 

    def process_response(self, request, response): 
     if request.something == 'something': 
      # do something 
     return None 

然後把MyCustomMiddlewareMIDDLEWARE_CLASSES在設置文件。在這種情況下位置並不重要,因爲在響應週期請求中已經形成。

+0

非常感謝。其實找到了解決辦法。我確實同意你有一個自定義MIDDLEWARE的想法。 –