2016-03-19 40 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的想法。 –