Возможность для администратора 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')

Я понимаю, почему администратор выходит из своей учетной записи, но мне действительно нужна помощь в достижении поведения, упомянутого выше.

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