前几天,我发现自己为Django Rest Framework编写了这种视图混合:
class SerializerRetrievalMixin(object):
"""
Mixin that just passes request query params to a serializer, validates
and returns the response.
Implementing classes must have a `serializer_class` attribute.
"""
def get(self, request):
serializer = self.serializer_class(
data=request.query_params,
context={'request': request},
)
serializer.is_valid(raise_exception=True)
return Response(serializer.data, status=status.HTTP_200_OK)
Django Rest Framework中是否已经有类似的东西?我发现CreateAPIView
在POST上可以很好地工作,但是GET是否有类似的功能? RetrieveAPIView
的基础是涉及Django模型,但就我而言,则没有。
答案 0 :(得分:0)
如果检查get
方法代码,则会看到它调用get_object
来检索要序列化的对象。因此,如果您不使用模型,则可以覆盖get对象以返回该对象,或者应序列化任何数据并将其作为响应发送。当然,在这种情况下您不能使用模型序列化程序,因为它需要模型对象。