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')
Подобным образом вы можете создать еще одну функцию для прослушивания запросов на вход от нештатных сотрудников. В вашей ссылке персонала никто другой не сможет войти в систему. Не забудьте импортировать все модули импорта и имена переменных могут отличаться в зависимости от вашего выбора.