gpt4 book ai didi

python - 查看 UrlGatewayLogin 未返回 HttpResponse 对象。它返回 None 相反

转载 作者:行者123 更新时间:2023-11-30 22:14:03 24 4
gpt4 key购买 nike

这个错误有点重复,随处可见,但我对发生的事情有点困惑。

我正在尝试在 URL 中传递一个 token ,以便用户登录,如下所示 http://localhost:8000/auth/login/?token=token。用户通过身份验证后,应将其重定向到仪表板。但我得到this error 。你能帮我理解发生了什么吗?

查看:

import logging

from django.contrib.auth import authenticate, login
from django.core.urlresolvers import reverse, reverse_lazy
from django.shortcuts import render
from django.views.generic import View
from django.http import HttpResponseRedirect, Http404, HttpResponse
from django.contrib.auth.backends import ModelBackend
from rest_framework_jwt.settings import api_settings

from business_accounts.models.my_user import MyUser


logger = logging.getLogger(__name__)

jwt_decode_handler = api_settings.JWT_DECODE_HANDLER

class UrlGatewayLogin(View):
def get(self, request, **kwargs):
page_group = kwargs.get('page_group')

token = request.GET.get('token')

try:
payload = jwt_decode_handler(token)
user = MyUser.objects.get(pk=payload.get('id'))
user.backend = 'django.contrib.auth.backends.ModelBackend'
except MyUser.DoesNotExist:
return None

authenticate(token=token)
logger.warning("User is=%s", user)
print(user)
login(request, user)

return HttpResponseRedirect('dashboard', {'page_group': page_group})

网址:

url(r'^auth/login/$', UrlGatewayLogin.as_view(), name='auth-login')

最佳答案

正如错误所示,您的 View 应该始终返回一个HttpResponse对象。目前,您的 except block 中已 return None

您可以通过执行以下操作来防止错误:

from django.http import HttpResponseBadRequest
try:
...
except MyUser.DoesNotExist:
return HttpResponseBadRequest("Invalid token")

关于python - 查看 UrlGatewayLogin 未返回 HttpResponse 对象。它返回 None 相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50624253/

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