我尝试为我的泛型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
答案 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)