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 № 1Nie 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