Serializer始终无效 - ApiView

时间:2016-04-20 17:57:44

标签: django django-rest-framework

为什么我总是有#34;这个字段是必需的"错误,print serializer.data为空?

编辑:只有当我使用" HTML表格" - "原始数据"它工作正常。

serializers.py

class TaskSerializer(serializers.Serializer):
    task_id = serializers.IntegerField(required=True)
    email = serializers.EmailField(required=True)
    email_to = serializers.EmailField(required=True)

views.py

class TaskAPIView(APIView):
    serializer_class = TaskSerializer

    def post(self, request):
        serializer = self.serializer_class(**{'data': request.data})
        serializer.is_valid()
        print serializer.data
        return Response(serializer.data, status=status.HTTP_201_CREATED)

1 个答案:

答案 0 :(得分:1)

我尝试重现这一点,但使用您的确切代码对我来说效果很好 - 我在print语句中看到request.data

我一直都在SerializerClass(data=request.data),这也是他们在the source中的表现。也许试试self.serializer_class(data=request.data),看看是否有任何区别。除此之外,根据当前的代码,我没有任何其他想法。