Возможность для администратора Django входить в систему как обычный пользователь
В моем проекте Django мне нужно предоставить администратору возможность входить под другим пользователем с сайта администратора. Я пытаюсь добиться определенного поведения - администратор может войти под другим пользователем на новой вкладке или в новом окне, и также будет входить под именем администратора на исходной вкладке браузера. Возможно ли это? Может ли кто-нибудь подсказать мне, как добиться такого поведения? Любая помощь будет оценена по достоинству. 🙏
def impersonate_link(self, obj):
impersonate_url = reverse('impersonate_user', args=[obj.id])
return format_html(
'<a href="{}" onclick="window.open(\'{}\', \'_blank\', \'width=800,height=600\'); return false;">Log in as</a>',
impersonate_url, impersonate_url
)
Я создал эту ссылку в admin.py
, чтобы показать ее рядом с каждой записью пользователя. Ссылка ведет к impersonate_user
представлению в views.py
. В этом представлении администратор просто входит в систему как нужный пользователь, но также выходит из учетной записи администратора.
@staff_member_required
def impersonate_user(request, user_id):
user = get_object_or_404(CustomUser, id=user_id)
login(request, user)
return redirect('home')
Я понимаю, почему администратор выходит из своей учетной записи, но мне действительно нужна помощь в достижении поведения, упомянутого выше.