Django authentication/user 创建函数
Django authentication/user create functions
我正在尝试在 Django 中启动一个项目,用户可以在我的网站上注册,随后 login/logout 当他们访问它时。
我找到了一个用户创建视图的模板,如下所示:
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
现在,我想知道为什么使用不存在的用户名进行身份验证的调用应该创建一个新用户。我试图找到导入函数 authenticate
和 login
的任何文档,但是,我只能找到用户模型、匿名用户对象、权限模型、组模型和一些身份验证的文档后端和 signals/validators、 但我没有找到任何关于(独立)函数 authenticate
和 login
. 的文档link 到相关文档或至少确认上面使用的方式(仍然?)正确吗?
我正在尝试在 Django 中启动一个项目,用户可以在我的网站上注册,随后 login/logout 当他们访问它时。
我找到了一个用户创建视图的模板,如下所示:
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
现在,我想知道为什么使用不存在的用户名进行身份验证的调用应该创建一个新用户。我试图找到导入函数 authenticate
和 login
的任何文档,但是,我只能找到用户模型、匿名用户对象、权限模型、组模型和一些身份验证的文档后端和 signals/validators、 但我没有找到任何关于(独立)函数 authenticate
和 login
. 的文档link 到相关文档或至少确认上面使用的方式(仍然?)正确吗?