【发布时间】:2013-05-30 02:05:20
【问题描述】:
我有一个 mixin,它定义了 finalize_response() 方法,打算在另一个类中覆盖:
class APILoggingMixin(object):
"""
Provides logging functionality by overriding finalize_response().
Intended to be mixed in with any rest_framework.views.APIView
"""
def finalize_response(self, request, response, *args, **kwargs):
logger.info('Some message.')
return super(APILoggingMixin, self).finalize_response(request, response, *args, **kwargs)
还有一个实现finalize_response() 方法的类。在同一个模块中,定义了logger 全局变量:
import logging
logger = logging.getLogger(__name__)
class CategoryDetail(APILoggingMixin, generics.RetrieveUpdateDestroyAPIView):
"""
Retrieve, update or delete a Category.
"""
model = Category
serializer_class = CategorySerializer
permission_classes = (permissions.IsAuthenticated,)
如何访问 mixin 中的logger 变量?
【问题讨论】:
-
它们在同一个文件中吗?如果是这样,请从其中一种方法中执行
logger.whatever...如果不是,则执行from otherfile import logger,然后使用它....