我在创建新帐户然后登录时遇到了一些问题。我输入了所有凭据(first_name,last_name,用户名,密码),然后选择"创建新帐户"和它成功地将我重定向回登录页面。但是,当我尝试使用此新帐户登录时,它表示我的用户名不存在。
问题很可能发生在我的views.py文件中:
def create_account(request):
if request.method == 'POST':
new_user = User(username = request.POST["username"],
password = request.POST["password"])
new_user.save()
Student.objects.create(user=new_user,
first_name=str(request.POST.get("first_name")),
last_name=str(request.POST.get("last_name")))
new_user.is_active = True
return redirect('../')
else:
return render(request, 'polls/create_account.html')
如果您需要更多代码或信息,请告诉我们。谢谢!
答案 0 :(得分:4)
密码字段需要加密。如果要设置密码,则需要使用将处理加密的set_password()方法。
new_user = User(username = request.POST["username"]) new_user.set_password(request.POST["password"]) new_user.save()
答案 1 :(得分:0)
如果您使用form
{/ 1>} cleaned_data
工作,这是另一种选择
def create_account(self, request):
if request.method == 'POST':
form = RegisterForm(request.POST) #registration form
if form.is_valid():
cd = form.cleaned_data
username = cd['username']
password = cd['password']
new_user = User.objects.create_user(
username = cd['username'],
password = cd['password']
)
new_user.save()
#... do stuff