I coded to redirect to login page when requesting home page. Whenever I tried to click home from other page it leads to login even after logged in

Viewed 41

view

def index(request):
    response=redirect('/login')
    return response

login.views

from django.shortcuts import render, redirect
from register.models import reg

def login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = reg.objects.filter(username=username, password=password)
        if user:
            user_details = reg.objects.get(username=username, password=password)
            id = user_details.id
            username_user = user_details.username
            request.session['id'] = id
            request.session['username'] = username_user
            return render(request,'index.html')
        else:
            return render(request,'register.html')
    else:
        return render(request, 'login.html')
1 Answers

You're redirecting to login in your index view, so of course you would be redirected by clicking the home button. You should verify if the user is connected, then if its the case you don't redirect, so something like that (assuming you're using Django authentication system) :

def index(request):
    if request.user.is_authenticated :
       # Do something for authenticated users

    else:
        response=redirect('/login')
        return response
Related