【发布时间】:2022-06-16 20:58:12
【问题描述】:
我正在为我的登录视图使用 django restframework。虽然我通过 POSTMAN 传递 json,但我得到的是空的电话和密码。
class LoginView(APIView):
permission_classes = (permissions.AllowAny,)
def post(self,request):
phone = request.POST.get('phone')
password = request.POST.get('password')
if phone and password:
get_user= CustomUser.objects.filter(phone=phone).first()
username = get_user.username
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return Response({"message": "Your are logged In!"}, status=status.HTTP_200_OK)
else:
return Response({"message": "Either phone number or password is wrong!"}, status=status.HTTP_400_BAD_REQUEST)
else:
return Response({"message": "Please type again!"}, status=status.HTTP_400_BAD_REQUEST)
我使用 POSTMAN 传递的 json
{
"phone": "923337195234",
"password": "123456789"
}
这是结果
{
"message": "Please type again!"
}
如果我注释掉第一个 if-else 语句
class LoginView(APIView):
permission_classes = (permissions.AllowAny,)
def post(self,request):
phone = request.POST.get('phone')
password = request.POST.get('password')
# if phone and password:
get_user= CustomUser.objects.filter(phone=phone).first()
username = get_user.username
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return Response({"message": "Your are logged In!"}, status=status.HTTP_200_OK)
else:
return Response({"message": "Either phone number or password is wrong!"}, status=status.HTTP_400_BAD_REQUEST)
# else:
# return Response({"message": "Please type again!"}, status=status.HTTP_400_BAD_REQUEST)
我得到了这个结果。为什么手机和密码都是空的?
AttributeError: 'NoneType' object has no attribute 'username'
这是我的 urls.py
path('login/', LoginView.as_view(), name="user_login")
【问题讨论】:
-
尝试使用
request.data代替request.POST?
标签: django-rest-framework django-login