簡體   English   中英

在一個端點django rest框架中使用兩個不同的序列化器

[英]Using two different serializer in one endpoint django rest framework

我正在嘗試在端點中使用兩個不同的序列化程序,但我指定的第二個序列化程序(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, request):
        data = request.data
        category_serializer = self.get_serializer(data=request.data, 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, request):
        data = request.data
        category_serializer = self.get_serializer(data=request.data, many=True)
        user_serializer = self.get_user_serializer(data=request.data, many=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM