Python ';str';对象没有属性';获取';当重定向到登录页面时

Python ';str';对象没有属性';获取';当重定向到登录页面时,python,django,Python,Django,我有一个链接,当我点击它,我需要重定向到登录页面,如果用户没有登录。这是我的链接: <a href="{{ request.scheme }}://{{ request.get_host }}{% url 'join_miz_email' id=meeting.pk email=email %}" 这是登录功能: @login_required def join_miz(request,id,email=None): print(email) if r

我有一个链接,当我点击它,我需要重定向到登录页面,如果用户没有登录。这是我的链接:

<a href="{{ request.scheme }}://{{ request.get_host }}{% url 'join_miz_email' id=meeting.pk email=email %}"
这是登录功能:

@login_required
def join_miz(request,id,email=None):
    print(email)
    if request.user.email == email:
        logout(request)
        return('register_login_landing')
    else:
    
        meeting = get_object_or_404(Meeting,pk=id)
        try :
            meeting_member= get_object_or_404(MeetingMember,meeting=meeting)
            return redirect('index')
        except:
            member = MeetingMember(meeting = meeting, user = request.user,status="A")
            member.save()
    return redirect(reverse('meeting-info',args=(meeting.pk,)))
def register_login_landing(request):
    if request.user.is_authenticated:
        return redirect('index')
    return render(request, "../templates/templates_v2/register-login-landing.html",context={'next':request.GET.get('next')}) 
并以html格式输入:

<input type="hidden" name="next" value="{{next}}"/>
这是回溯:

    Traceback Switch to copy-and-paste view
/home/admin1/envs/myvenv/lib/python3.8/site-packages/django/core/handlers/exception.py, line 47, in inner
                response = get_response(request) …
▶ Local vars
/home/admin1/envs/myvenv/lib/python3.8/site-packages/django/utils/deprecation.py, line 116, in __call__
            response = self.process_response(request, response) …
▶ Local vars
/home/admin1/envs/myvenv/lib/python3.8/site-packages/django/middleware/clickjacking.py, line 26, in process_response
        if response.get('X-Frame-Options') is not None: …
▶ Local vars

我该怎么办?

您在查看函数中返回了字符串而不是响应对象。更多信息

似乎您可能想通过
注册\u登录\u登录
返回重定向。 视图需要返回响应对象或重定向

大概是这样的:

return redirect(reverse('register_login_landing',args=(meeting.pk,)))
而不是:

return('register_login_landing')

欢呼声

也会显示回溯,而不仅仅是错误消息。你的问题,包括追溯那里;作为评论,它是不可读的。
@login_required
def join_miz(request,id,email=None):
    print(email)
    if request.user.email == email:
        logout(request)
        return('register_login_landing')
return redirect(reverse('register_login_landing',args=(meeting.pk,)))
return('register_login_landing')