【问题标题】:Local variable referenced before assignment - Django 2.1分配前引用的局部变量 - Django 2.1
【发布时间】:2021-04-07 08:09:22
【问题描述】:

我一直在寻找在 Django 中对没有密码的用户进行身份验证的方法,但这不是我的疑问。

我已经看到 this 的回答有 24 个赞。答案说我在views.py中已经这样做了:

user = authenticate(username=user.username)
login(request, user)

当我执行代码时,我收到了这个错误:UnboundLocalError: local variable 'user' referenced before assignment。这对我来说很明显,我正在使用该变量定义一个变量。

那么,如果答案不起作用,为什么会有 24 票赞成?我必须做什么才能使上述代码正常工作?

Django 版本:2.1

【问题讨论】:

  • 它在全局范围内工作正常,因为您没有引入一个名为 user 的新局部变量,它会影响 user.username 期望使用的全局变量。

标签: python authentication django-2.1


【解决方案1】:

正如@chepner 用简单的话解释的那样,这里的问题与在本地范围内使用它有关。

如果您正确执行了这些步骤,在views.py 的相关函数中,您需要添加上述代码行。 user 将是您尝试在没有密码的情况下进行身份验证的用户对象。

您可以在此处查看有关 User 对象的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    相关资源
    最近更新 更多