响应没有属性“用户名”

时间:2019-06-06 14:51:32

标签: python django django-rest-framework

我尝试为我的泛型API视图返回自定义响应,但是由于调用API时出现“响应”对象没有属性“用户名”错误,因此无法正常工作

这是我到目前为止所做的:

我处理了DidNotExist异常错误,然后返回了一个Response(来自django rest框架)。

class UniqueEmailAPI(generics.RetrieveAPIView):
  permission_classes = [
    permissions.AllowAny,
  ]

  serializer_class = UserSerializer

  def get_object(self):
    email = self.request.data['email']
    try:
      return User.objects.get(email= email)
    except ObjectDoesNotExist:
      return Response(status=status.HTTP_204_NO_CONTENT)

UserSerializer:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username', 'email')

异常日志: Stacktrace

1 个答案:

答案 0 :(得分:1)

您的序列化程序正在尝试序列化您的foo # compiled binary program foo.i # intermediate, preprocessed C file foo.o # object file foo.s # assembly file 响应。除非您引发错误,否则它将尝试使用序列化程序序列化从./bin/foo 返回的任何内容。

您可以使用Django的get_object_or_404方法引发404错误,以使框架知道它应该返回错误响应。

您可以执行以下操作:

Response(status=status.HTTP_204_NO_CONTENT)