【问题标题】:Django authentication/user create functionsDjango 身份验证/用户创建功能
【发布时间】:2021-07-10 23:01:35
【问题描述】:

我正在尝试在 Django 中启动一个项目,用户可以在我的网站上注册,然后在访问时登录/注销。

我找到了一个用户创建视图的模板,如下所示:

from django.views.generic import CreateView
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import authenticate, login

class CreateUserView(CreateView):
    template_name = 'register.html'
    form_class = UserCreationForm
    success_url = '/'

    def form_valid(self, form):
        valid = super(CreateUserView, self).form_valid(form)
        username, password = (
            form.cleaned_data.get('username'),
            form.cleaned_data.get('password1')
        )
        new_user = authenticate(username=username, password=password)
        login(self.request, new_user)
        return valid

现在,我想知道为什么使用不存在的用户名进行身份验证的调用应该创建一个新用户。我正在尝试查找导入函数 authenticatelogin 的任何文档,但是,我只能找到 User-model、AnonymousUser 对象、Permission-model、Group-model、一些身份验证后端和信号的文档/验证器,但我没有找到(独立)函数 authenticatelogin 的任何文档。有人可以为我提供相关文档的链接或至少确认方式为上面使用的它们(仍然?)正确吗?

【问题讨论】:

    标签: django django-auth-models


    【解决方案1】:

    我认为这里有一点误解,也许是变量名的选择是罪魁祸首。 authenticate 函数不会创建新用户,而是返回用户对象。 docs

    创建用户的是UserCreationFormdocs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-22
      • 2020-08-25
      • 2019-12-02
      • 1970-01-01
      • 2022-10-06
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多