在返回NoneType而不是重定向时返回redirect-Python-Django[错误]
在这里,如果会话不存在,我不想重定向。但是在返回NoneType而不是重定向时返回redirect-Python-Django[错误],django,django-views,django-templates,Django,Django Views,Django Templates,在这里,如果会话不存在,我不想重定向。但是authenticate功能返回None,而不是重新选择主页。解决办法是什么 内部身份验证功能: def authenticate(request): username = request.session.get('username') password = request.session.get('password') email = request.session.get('email') if username an
authenticate
功能返回None,而不是重新选择主页。解决办法是什么
内部身份验证功能:
def authenticate(request):
username = request.session.get('username')
password = request.session.get('password')
email = request.session.get('email')
if username and password:
user_data = User.objects.get(username=username, password=password)
if user_data.is_active:
return {'bool':True, 'ud':user_data}
elif not user_data.is_active and username:
redirect(f'verify/{username}')
else:
return False
else:
request.session.delete()
return redirect('/')
内部views.py
def profile(request, username):
auth = authenticate(request)
但是,它的作用是:
def profile(request, username):
auth = authenticate(request)
if not auth:
return redirect('/')
是的。它将返回None,因为在authenticate函数中,您重定向到='/'而没有返回。因此它将返回None我看到的主要问题是,
配置文件
视图没有返回任何内容。在Django
我的建议是,您可以从
authenticate
函数返回一个值,在profile
视图中评估该值,然后根据需要从那里重定向/渲染。Nope bro。如果我像这样使用它:return redirect('homepage')
同样的问题正在弹出。同样对于您的信息,return redirect('/')
也会将我们重定向到basepage。它也适用于。请检查我编辑的问题。我知道我可以这样做,但我在不同的地方使用身份验证功能,我不想在任何地方都写相同的if/esle。。