У меня есть API, который будет делать патч для ресурса (MyUser). Он проверяет нормально и, кажется, сохраняет объект, однако при запросе базы данных изменения не были сохранены.
class UserSignupView(generics.UpdateAPIView):
serializer_class = MyUserSerializer
def get_object(self, email):
obj = MyUser.objects.get(email=email)
self.check_object_permissions(self.request, obj)
return obj
def patch(self, request):
print(request.user)
user = self.get_object(request.user.email)
print(user.street)
serializer = MyUserSerializer(user, data=request.data, partial=True)
serializer.is_valid(raise_exception=True)
serializer.save()
savedUser = MyUser.objects.get(email=request.user.email)
print(savedUser.street)
print(serializer.data)
return Response(serializer.data)
class MyUserSerializer(serializers.ModelSerializer):
class Meta:
model = MyUser
fields = (
'id', 'first_name', 'last_name', 'email', 'phone_number', 'street', 'locality', 'city',
'county', 'postcode')
Глядя на распечатки, я получаю:
user@example.com
Ни один
Улица Фейка 123
MyUser объект
Возвращает правильные сериализованные данные, которые содержат изменения, но база данных не содержит изменений. Соединение с базой данных в порядке, так как я могу запросить его и сделать другие операции чтения / записи / и т.д. Он почти такой же, как UpdateModelMixin, за исключением того, что мне пришлось переопределить get_object с переданным параметром.