I'm trying to use two different serializers in endpoint but the second serializer that i assign(UserSerializer) is the one that is getting used. Is there a way to have one specific serializer being used for one specific model so that i can use userSerializer for creating a user and the CategorySerializer to create a category.
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)
You can only have one serializer class in one API view. If want to use two serializers, you can just use it like this.
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)
Or if really want to have some method for second serializer too, you can do
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With