Django:认证美国

2024-09-30 01:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

#创建用户:

def create_user(request):
    if request.method == 'POST':
        user_info = forms.UserInfoForm(request.POST)
        if user_info.is_valid():
            cleaned_info = user_info.cleaned_data
            User.objects.create_user(username=cleaned_info['username'], password=cleaned_info['password'])
   render(.......)

这很管用。我可以检查auth_用户,我可以看到用户名和密码以及所有其他创建和添加的字段。在

现在,我在用username='testcase'和password='test'创建用户之后,尝试使用以下代码对用户进行身份验证:使用上面的代码。在

#验证用户

^{pr2}$

用户始终返回为“无”。怎么回事?我运行的是django1.10.2。在

更新:

当我登录到admin时,我可以看到create_user函数创建的用户。身份不是工作人员(因为它应该是)。我将其更改为staff,以查看这是否导致问题,但get_entry方法仍然不会为用户生成任何结果。 令人沮丧。我真的不知道我做错了什么。在


Tags: 代码用户infoifrequestdefcreateusername
2条回答

你的代码似乎是正确的。在

问题可能是传递给create_user视图的方式(传入get_entry视图的参数不太可能是问题,因为参数usernamepassword是硬编码的)。在

在将usernamepassword传递给User.objects.create_user()之前,请尝试将它们打印出来,因为{}字段可能没有正确保存和/或传递空的{},Django可能正在为空密码创建哈希。在

附言:这只是一个猜测,需要你的回应,以进一步诊断这个问题。在

将用户保存在一个变量中,然后调用用户.保存()因为用户无法调用save()方法,请尝试:

def create_user(request):
        if request.method == 'POST':
            user_info = forms.UserInfoForm(request.POST)
            if user_info.is_valid():
                cleaned_info = user_info.cleaned_data
                user = User.objects.create_user(username=cleaned_info['username'], password=cleaned_info['password'])
                user.save()
       render(.......)

那你需要打电话身份验证在函数get_entry中:

^{pr2}$

相关问题 更多 >

    热门问题