Значение JSON для сериализатора запроса Django

Используется django 2.0.2 MAC OS 10.13

views.py

from rest_framework import viewsets
from .serializers import RegisterSerializer
from rest_framework.response import Response
import json

class RegisterViewSet(viewsets.ModelViewSet):
    queryset = ''
    serializer_class = RegisterSerializer
    def create(self,request, *args, **kwargs):
        print(json.loads(request.body))
        serializer_class = RegisterSerializer(json.loads(request.body))
        return Response(serializer_class)

serializers.py

from rest_framework import serializers
from .models import register
import uuid
class RegisterSerializer(serializers.Serializer):
    UserEmail = serializers.EmailField(allow_blank=True,default=uuid.uuid4())
    UserPassword = serializers.CharField(allow_blank=True,default=uuid.uuid4())
    UserSex = serializers.IntegerField(default=0)
    UserAge = serializers.IntegerField(default=0)
    DeviceId = serializers.CharField(allow_blank=True,default=uuid.uuid4())
    PushKey = serializers.CharField(allow_blank=True,default=uuid.uuid4())
    OS = serializers.IntegerField(default=0)
    OSVersion = serializers.CharField(allow_blank=True,default=0)
    def create(self,validated_date):
        return True

api test.html введите описание изображения здесь

я ввожу это значение успешно print(json.loads(request.body))как использовать это значение в сериализаторе

после

поднять это исключение

You passed a Serializer instance as data, but probably meant to pass serialized `.data` or `.error`. representation.

1 ответ

Решение

Изменить эту строкуreturn Response(serializer_class) в return Response(serializer_class.data)

Другие вопросы по тегам