我想给某个资源添加一个dispatch方法,这样我就可以在它上面使用包装器装饰器。
问题是它只能在CRUD操作上工作,并且不会进入“原始”端点上的dispatch方法:
class SomeResource(SomeBaseResource):
class Meta(...): ...
def get_something_extra(self, request, **kwargs):
...
def patch_detail(self, request, **kwargs):
...
以及基础资源:
class SomeBaseResource(ModelResource):
class Meta(...): ...
# the wrapper
@decorator_to_wrap_all_methods_with(...)
def dispatch(self, request_type, request, **kwargs):
logger.info('Enter')
response = super(SomeBaseResource, self).dispatch(request_type, request, **kwargs)
logger.info('Exit')
return response
当我使用patch请求时,它按预期工作,但在调用get_something_extra api时不起作用。
如何包装资源中的全部方法?