我的大多数ModelViewSet都有覆盖创建方法(创建对象时需要执行其他操作)。
class MyModelViewSet(serializers.ModelSerializer):
def create(self, *args, **kwargs ):
# some code
return Response(
serializer.data,
status=status.HTTP_201_CREATED,
headers=headers
)
我还想为这些创建方法定义一个装饰器函数,例如:
def post_shower(func):
@wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
print result
return result
return wrapper
基本上我需要响应状态,标题,新对象数据。当我运行此代码时,我得到了
ContentNotRenderedError: The response content must be rendered before it can be accessed.
上的
print result
有关如何在装饰器中获取数据的任何建议? 感谢
答案 0 :(得分:0)
通过response.data
访问新对象数据,通过response.status_code
访问状态。通过Response对象的类似dict的接口逐个访问头。或者通过response._headers
非正式地一次性完成。