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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步