在返回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。。