gpt4 book ai didi

python - 响应没有属性 'username'

转载 作者:行者123 更新时间:2023-12-01 07:45:31 27 4
gpt4 key购买 nike

我尝试为我的泛型 API View 返回自定义响应,但它不起作用,因为调用 API 时出现“响应”对象没有属性“用户名”错误

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

我处理DoesNotExist异常错误,然后返回响应(来自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)

用户序列化器:

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

异常日志: Stacktrace

最佳答案

您的序列化程序正在尝试序列化您的 Response(status=status.HTTP_204_NO_CONTENT) 响应。除非您引发错误,否则它将尝试使用序列化程序序列化您从 get_object 返回的任何内容。

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

你可以这样做:

from django.shortcuts import get_object_or_404
get_object_or_404(User, email= email)

关于python - 响应没有属性 'username',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com