在一个端点 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。如果想使用两个序列化器,你可以这样使用它。
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)
我正在尝试在端点中使用两个不同的序列化程序,但我分配的第二个序列化程序 (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。如果想使用两个序列化器,你可以这样使用它。
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)