Мне нужна разная система аутентификации для пользователя и администратора в 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:

  1. админ
  2. staff
  3. простой пользователь/регулярный пользователь

Определите роль каждого пользователя в модели SignUp. Если обычный пользователь вошел в систему, он обязательно будет отфильтрован из модели signUp, и это вернет его/ее как обычного/простого пользователя.

Вам не нужно создавать другую модель для регистрации Вы можете легко проверить текущие разрешения пользователя Например

  • is_admin
  • is_staff
  • is_superuser Затем перенаправьте в зависимости от разрешений
Вернуться на верх