查看不涉及任何Django模型的检索mixin

问题描述 投票:0回答:1

我发现自己前几天为Django Rest Framework写了这个视图mixin:

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模型,但在我的情况下,没有。

django-rest-framework
1个回答
0
投票

如果你检查get方法代码,你会看到它调用get_object来检索要序列化的对象。因此,如果您不使用模型,则可以覆盖get对象以返回对象或应该序列化并作为响应发送的任何数据。当然,在这种情况下,您不能使用模型序列化程序,因为它需要模型对象。

© www.soinside.com 2019 - 2024. All rights reserved.