2022-10-11 10:48阅读: 25评论: 0推荐: 0

drf 简单切换序列化器

根据是否有pk 切换序列化器

get_serializer_class源码

    def get_serializer_class(self):
        """
        Return the class to use for the serializer.
        Defaults to using `self.serializer_class`.

        You may want to override this if you need to provide different
        serializations depending on the incoming request.

        (Eg. admins get full serialization, others get basic serialization)
        """
        assert self.serializer_class is not None, (
            "'%s' should either include a `serializer_class` attribute, "
            "or override the `get_serializer_class()` method."
            % self.__class__.__name__
        )

        return self.serializer_class

views

class BlogView(ListModelMixin, RetrieveModelMixin, GenericViewSet):
    # 根据是否有pk 切换序列化器,重写get_serializer_class
    def get_serializer_class(self):
        pk = self.kwargs.get('pk')
        if pk:
            return BlogDetailModelSerializer
        return BlogModelSerializer

本文作者:Sherwin

本文链接:https://www.cnblogs.com/sherwin1995/p/16778477.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Sherwin_szw  阅读(25)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.