加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在一个端点django rest框架中使用两个不同的序列化器

发布时间:2020-12-20 11:10:02 所属栏目:Python 来源:网络整理
导读:我正在尝试在端点中使用两个不同的序列化程序,但我指定的第二个序列化程序(UserSerializer)是正在使用的序列化程序.有没有办法让一个特定的序列化程序用于一个特定的模型,以便我可以使用userSerializer来创建用户,使用CategorySerializer来创建一个类别. cla
我正在尝试在端点中使用两个不同的序列化程序,但我指定的第二个序列化程序(UserSerializer)是正在使用的序列化程序.有没有办法让一个特定的序列化程序用于一个特定的模型,以便我可以使用userSerializer来创建用户,使用CategorySerializer来创建一个类别.

class UserSignup(generics.CreateAPIView):
    model = Category
    serializer_class = CategorySerializer 

    model = User
    serializer_class = UserSerializer
    def create(self,request):
        data = request.data
        category_serializer = self.get_serializer(data=request.data,many=True)
        user_serializer = self.get_serializer(data=request.data,many=True)

解决方法

在一个API视图中只能有一个序列化程序类.如果想要使用两个序列化程序,您可以像这样使用它.

class UserSignup(generics.CreateAPIView):
    model = Category
    serializer_class = CategorySerializer 

    def create(self,many=True)
        user_serializer = UserSerializer(data=request.data,many=True)

或者如果真的想要为第二个序列化器提供一些方法,你可以这样做

class UserSignup(generics.CreateAPIView):
    model = Category
    serializer_class = CategorySerializer 

    def get_user_serializer(*args,**kwargs):
        # you can have some logic here...
        return UserSerializer(*args,**kwargs)


    def create(self,many=True)
        user_serializer = self.get_user_serializer(data=request.data,many=True)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读