Django: Как создать отдельную ссылку для входа в конечную точку для администраторов/сотрудников

В настоящее время я использую общие ссылки входа/регистрации (.../account/login, .../account/register и т.д.), которые позволяют всем пользователям (штатным и нештатным) войти в систему. Я создаю отдельное приложение только для сотрудников и хотел бы иметь отдельную конечную ссылку (.../acccount/staff-login), которая позволит сотрудникам получать токены. Это кажется довольно простым, но я не смог ничего найти для этого.

Нужно создать еще одну аутентификацию и проверить пользователя, который пытается войти в систему.

вы можете просто использовать оператор IF.

`
if User.object.filter(fieldname=value, is_staff=True).exists():
    do the auth......
else:
    return the user back with error messeage
 `
<

Вы можете сделать это, используя две различные ссылки... 1.link_for_non-staf 2.link_for_staf Теперь прослушайте этот запрос в двух разных функциях в файле views.py.

def link_for_staff(request):
    if request.method=="POST":
        staff_form=AuthenticationForm(request,data=request.POST)
        if form.is_valid():
            username=staff_form.cleaned_data.get('username')
            passowrd=staff_form.cleaned_data.get('password')
            user=authenticate(username=username,passowrd=password)
            if user is not None:
                login(request,user)
                return redirect('home')

Подобным образом вы можете создать еще одну функцию для прослушивания запросов на вход от нештатных сотрудников. В вашей ссылке персонала никто другой не сможет войти в систему. Не забудьте импортировать все модули импорта и имена переменных могут отличаться в зависимости от вашего выбора.

Вернуться на верх