Emm
Emm

Reputation: 2507

Conditional redirection in Django

I would like users to be conditionally redirected to different urls based on their email. So users who login with a specific email are redirected to page A and others to page B.

With the code i have currently, all users are redirected only to page A (google.com)

This is what I have in views.py

@login_required
@student_required
@check_is_allow
def messages(request):
    emails = ['[email protected]', '[email protected]', '[email protected]',
              '[email protected]', '[email protected]', '[email protected]']
    if request.user.email in emails:
        return render(request, 'https://www.google.com/')
    else:
        return render(request, 'https://www.facebook.com/')

My urls.py

    ...
    path('messages', students.messages, name='messages'),
    ...

and html

...
<li><a href="{% url 'students:messages' %}">Messages</a></li>
...

Upvotes: 0

Views: 101

Answers (1)

Alasdair
Alasdair

Reputation: 308779

render renders a template, it doesn't redirect users. Use the redirect shortcut to redirect users.

from django.shortcuts import redirect
if request.user.email in emails:
    return redirect("https://www.google.com")

Upvotes: 2

Related Questions