/ / Serializer validated_data jest pusty, nawet gdy is_valid jest True - python, django, django-rest-framework

Serializator validated_data jest pusty, nawet gdy is_valid jest True - python, django, django-rest-framework

Po kodzie zwracającym pusty json.

def create_account(request):
serializer = UserSerializer(data={"name": request.GET.get("name"), "surname": request.GET.get("surname"),
"password": request.GET.get("password"), "email": request.GET.get("email")})
if not serializer.is_valid():
return HttpResponse(status=401,content=serializer.errors)

serializer.save()
return Response(serializer.data)

I to jest mój serializator

class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ("name", "surname", "password", "email")

def create(self, validated_data):
return User.objects.create(**validated_data)

Kiedy wysyłam żądanie, serializer.initial_data jest poprawnie wypełniony. is_valid wraca True ale validated_data jest pusty.

Odpowiedzi:

2 dla odpowiedzi № 1

Nie wygląda na to, że używasz niestandardowego użytkownikamodel i django.contrib.auth.models.User nie ma pól nazw i nazw, ale ma nazwy first_name i last_name. Spróbuj użyć ich jako pól w serializerze, ponieważ są to pola modelu. W przeciwnym razie będziesz musiał przesuń na wartość_wewnętrzną, co sugeruje ta odpowiedź.

Nie można uzyskać pola innego niż model w validated_data serializera Django Rest Framework