我想创建一个自定义CBV,这样每次用户访问任何使用此自定义CBV的端点时都可以记录。我试过这样的事情:
class LogUserAccess(APIView):
def dispatch(self, request, *args, **kwargs):
logger.info('User {} accessing to {} ({})'.format(request.user, resolve(request.path).app_name, self.__class__.__name__))
super(LogUserAccess, self).dispatch(request, *args, **kwargs)
...但无法识别记录器实例。
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
您可以尝试使用中间件。在这种情况下,您可以尝试process_request中间件。查看this
def process_request(self, request):
logger.info('User {} accessing to {} ({})'.format(request.user, resolve(request.path).app_name, self.__class__.__name__))