Reputation: 261
My homepage is login page.So first it will goto the home function and if not logged in it will goto login_user
function then after logging in it will redirected to home.But page not found is showing.Here is my code.
views.py:
def login_user(request):
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('/')
else:
return render(request, 'retest/login.html', {'error_message': 'Your account has been disabled'})
else:
return render(request, 'retest/login.html', {'error_message': 'Invalid login'})
return render(request, 'retest/login.html')
@login_required
def home(request):
user = request.user
if user.groups.filter(name='hod').exists():
return render(request, 'retest/hod.html', {})
elif user.groups.filter(name='principal').exists():
return render(request, 'retest/principal.html', {})
elif user.groups.filter(name='Rep').exists():
return render(request, 'retest/home.html', {})
elif user.groups.filter(name='Ajithzen').exists():
return render(request, 'event/ajithzen.html', {})
elif user.groups.filter(name='graphics').exists():
return render(request, 'event/ashok.html', {})
elif user.groups.filter(name='Event_incharge').exists():
return render(request, 'event/chair.html', {})
elif user.groups.filter(name='IEEE').exists():
return render(request, 'event/ieee.html', {})
else:
return redirect('/login')
urls.py
url(r'login^$', views.login_user, name='login_user'),
url(r'^$', views.home, name='home'),
Page not found(404)
Request Method: GET
Request URL: http://127.0.0.1:8000/accounts/login/?next=/
Upvotes: 1
Views: 435
Reputation: 92
In default, @login_required
will redirect the unauthenticated user to settings.LOGIN_URL
.
settings.LOGIN_URL
set as /accounts/login
as default. See the documentation.
Therefore, your login url is /login
, then you need to set the LOGIN_URL
in setting.py file.
Add this line in the end of setting.py
LOGIN_URL = "/login"
Also, you may want to have a look at the LOGIN_REDIRECT_URL
attribute.
Upvotes: 0