Мне нужна разная система аутентификации для пользователя и администратора в djagno
Я создаю сайт, где есть обычный пользователь и администратор. Но проблема в том, что когда пользователь входит в систему как пользователь, он также входит на страницу администратора. Также когда администратор входит в систему, он также входит на страницу пользователя.
def userlogin(request):
error = ""
if request.method == 'POST':
u = request.POST['emailid']
p = request.POST['pwd']
user = authenticate(username=u, password=p)
try:
if user:
login(request, user)
error = "no"
return redirect(profile)
else:
error = "yes"
except:
error = "yes"
return render(request, 'login.html', locals())
def login_admin(request):
error = ""
if request.method == 'POST':
u = request.POST['uname']
p = request.POST['pwd']
user = authenticate(username=u, password=p)
try:
if user.is_staff:
login(request, user)
error = "no"
else:
error ="yes"
except:
error = "yes"
return render(request,'login_admin.html', locals())
Я хочу добиться различной системы аутентификации для пользователя, а также для администратора.
Сделайте некоторые роли явными в модели SignUp, как это предусмотрено Django:
- админ
- staff
- простой пользователь/регулярный пользователь
Определите роль каждого пользователя в модели SignUp. Если обычный пользователь вошел в систему, он обязательно будет отфильтрован из модели signUp, и это вернет его/ее как обычного/простого пользователя.
Вам не нужно создавать другую модель для регистрации Вы можете легко проверить текущие разрешения пользователя Например
- is_admin
- is_staff
- is_superuser Затем перенаправьте в зависимости от разрешений