Search code examples
djangodjango-serializer

My REST API data is not saving into database but it is returning the correct data


I am very new to Django. I want to store my data to my MYSQL database using a POST request and retrieve the data. However, for some reason, it is not storing to the database but retrieving the correct data.

I am assuming cust = UserSerializer(data = user_req_data) line is not valid. How do I fix my code?

class UserSerializer(serializers.ModelSerializer):
    def create(self, validatedData):
        validatedData['password'] = make_password(validatedData['password'])
        #Save to database?

        return validatedData

View

#User Viewset
class UserViewSet(viewsets.ModelViewSet):
    queryset = Users.objects.all()
    serializer_class = UserSerializer

Solution

  • Replace your serializer with this class,

    class UserSerializer(serializers.ModelSerializer):
        def create(self, validated_data):
            instance = super().create(validated_data)
            try:
                instance.password = make_password(validated_data['make_password'])
                instance.save()
            except KeyError:
                pass
            return instance