【发布时间】:2020-04-04 03:25:23
【问题描述】:
我有一个基于函数的视图(带有api_view 装饰器),我想更改APIView 的类函数之一。
例如。
@api_view(['GET'])
...
def a_view(request, id):
...
return Response({'data': 'testing'}, status=200)
我想用这个覆盖 APIView 的一个函数(比如initialize_request)。
class ViewOverrideMixin(object):
def initialize_request(self, request, *args, **kwargs):
# do_something
super(ViewOverrideMixin, self).initialize_request(request, *args, **kwargs)
如果这是一个基于类的视图,我可以将新函数放在视图类中或继承这个 mixin,对于基于函数的视图如何做到这一点? 可以添加装饰器覆盖类功能吗?
def decorator(viewfn):
def wrapper(fn):
# override the APIView function with custom mixin here return the class
# what would that be?
return fn
return wrapper(viewfn)
【问题讨论】:
标签: django-rest-framework django-views python-decorators