201 Создан - но нет нового объекта в базе данных SqLite
У меня есть кнопка, на которую пользователи могут нажать, чтобы добавить объект в свой аккаунт. Она отправляется через django в мою sqlite базу данных, и в консольном журнале нет никаких ошибок. Там написано "201 Created", но в базе данных нет нового объекта.
У кого-то еще была такая же проблема, как у меня, решением было избавление от некоторых методов в сериализаторе, но они не указали, от чего они избавились.
Что вызывает это?
Вот мой сериализатор:
class RatSerializer(FlexFieldsModelSerializer, serializers.ModelSerializer):
name = serializers.CharField()
user = serializers.CharField(source='user.username', required=False)
userid = serializers.CharField(source='user.id', required=False)
body_colour = BodyColourSerializer()
eye_colour = EyeColourSerializer()
image = ImageSerializer(required=False)
class Meta:
model = rat
exclude = ['bio']
def create(self, data):
request = self.context.get("request")
user = request.user
return rat( name = data["name"],
body_colour = BodyColour(name=data["body_colour"]["name"]),
eye_colour = EyeColour(name=data["eye_colour"]["name"]),
image = Image(),
user = user)
Мои взгляды:
class ratViewset(ModelViewSet, APIView):
serializer_class = RatSerializer
# queryset = rat.objects.all()
def get_queryset(self):
user = self.request.user
if user.is_anonymous:
return rat.objects.all()
return rat.objects.filter(user=user.id)
def post(self, request):
rat = request.data.get('rat')
# creates rat with the above data
serializer = RatSerializer(data=rat)
if serializer.is_valid(raise_exception=True):
serializer.save()
print(serializer.data, type(serializer.data))
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status)
Благодарен за любую помощь!