-2

i have a link and when i click on it i need to redirect to the login page if the user is not logged in. this is my link:

<a href="{{ request.scheme }}://{{ request.get_host }}{% url 'join_miz_email' id=meeting.pk email=email %}"

and this is my url :

 path('joinmizemail/<uuid:id>/<str:email>',join_miz, name="join_miz_email"),

and this is my join_miz function:

@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,)))

and this this the login function:

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')}) 

and input in html form:

<input type="hidden" name="next" value="{{next}}"/>

but i get this error :

 AttributeError at
 /meeting/joinmizemail/57e27cda-227f-4e60-a9c5-5493bf8e5961/niloofarharooni29@gmail.com
 'str' object has no attribute 'get'

and this is the traceback:

    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

what should i do?

MisterMiyagi
  • 44,374
  • 10
  • 104
  • 119

1 Answers1

1

You had returned string instead of Response object at view function. more info is here.

@login_required
def join_miz(request,id,email=None):
    print(email)
    if request.user.email == email:
        logout(request)
        return('register_login_landing')

Seems you maybe wanted to return a redirect by register_login_landing. The views need to return Response object or either a redirect.

Something like this:

return redirect(reverse('register_login_landing',args=(meeting.pk,)))

instead of:

return('register_login_landing')

Cheers