Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使用管理员权限,如何在没有密码的情况下验证或登录用户帐户?_Django_Python 3.x_Authentication - Fatal编程技术网

Django 使用管理员权限,如何在没有密码的情况下验证或登录用户帐户?

Django 使用管理员权限,如何在没有密码的情况下验证或登录用户帐户?,django,python-3.x,authentication,Django,Python 3.x,Authentication,我是django应用程序的新手,我想通过管理员权限检查/登录一个没有密码的用户帐户 Django中有内置功能吗?请帮助或指导我如何做到这一点 这种特性是由laravel在PHP中提供的 以下是PHP的示例代码: 使用照亮\Http\Request; 使用App\User; 公共函数loginAsUser(用户$User){ auth()->guard('admin')->logout(); auth()->guard('web')->loginUsingId($user->id); 返回重定向(

我是django应用程序的新手,我想通过管理员权限检查/登录一个没有密码的用户帐户

Django中有内置功能吗?请帮助或指导我如何做到这一点

这种特性是由laravel在PHP中提供的

以下是PHP的示例代码:

使用照亮\Http\Request;
使用App\User;
公共函数loginAsUser(用户$User){
auth()->guard('admin')->logout();
auth()->guard('web')->loginUsingId($user->id);
返回重定向(路由('user.dashboard');
}

以下是最简单的逻辑

[html / template page ]
<a href="{% url 'login_as' user.username %}">Login as User</a>

[urls.py]
path('login_as/<username>', views.login_as_user, name='login_as'),


[views.py]
from django.contrib.auth import login


@staff_member_required()
def login_as_user(request, username):
    try:
        # assuming the user name is passed in via get
        username = username
        user = User.objects.get(username=username)

        # manually set the backend attribute
        user.backend = 'django.contrib.auth.backends.ModelBackend'
        login(request, user)
    except Exception as e:
        messages.warning(request, e)

    #location of landing 
    return redirect('/users/dashboard')


[html/模板页]
[url.py]
路径('login_as/',views.login_as_user,name='login_as'),
[views.py]
从django.contrib.auth导入登录
@职员/职员/必需人员()
def以用户身份登录(请求、用户名):
尝试:
#假设用户名是通过get传入的
用户名=用户名
user=user.objects.get(用户名=username)
#手动设置后端属性
user.backend='django.contrib.auth.backends.ModelBackend'
登录(请求、用户)
例外情况除外,如e:
消息。警告(请求,e)
#着陆地点
返回重定向(“/users/dashboard”)

您可以创建一个视图,根据电子邮件或用户名查询用户。然后使用该用户对象作为参数调用
login
方法。您应该查看世界级。文档没有比这更新的用户友好。@Toankocho是的,但是身份验证方法使用user.password询问用户对象,在我的情况下-没有密码尝试使用管理员权限登录用户帐户,这可能吗?