Python 未为新django用户设置密码
当新用户注册帐户时,“管理”面板显示,尽管通过views.py保存密码,但尚未为该用户设置密码。我注意到的另一件奇怪的事情是,密码被保存到数据库的email字段中。代码看起来很好。不知道我哪里出错了。任何帮助都将不胜感激 注册html模板Python 未为新django用户设置密码,python,django,Python,Django,当新用户注册帐户时,“管理”面板显示,尽管通过views.py保存密码,但尚未为该用户设置密码。我注意到的另一件奇怪的事情是,密码被保存到数据库的email字段中。代码看起来很好。不知道我哪里出错了。任何帮助都将不胜感激 注册html模板 {% if user.is_authenticated %} <h2>currently logged in as {{ user.username }} </h2> {%
{% if user.is_authenticated %}
<h2>currently logged in as {{ user.username }} </h2>
{% else %}
<h1 class="h5 text-center">Create Account</h1>
<h4>{{ error }}</h4>
<form method="POST">
{% csrf_token %}
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" name="username" autocomplete="username" placeholder="Username" id="id_username" required>
</div>
<div class="form-group">
<label for="password1">Password</label>
<input type="password" class="form-control" name="password1" placeholder="Password" autocomplete="new-password" required id="id_password1">
<small>Password must be at least 8 characters</small>
</div>
<div class="form-group">
<label for="password2">Confirm Password</label>
<input type="password" class="form-control" name="password2" placeholder="Confirm Password" autocomplete="new-password" required id="id_password2">
</div>
<ul>
<li>Your password can’t be too similar to your other personal information.</li>
<li>Your password must contain at least 8 characters.</li>
<li>Your password can’t be a commonly used password.</li>
<li>Your password can’t be entirely numeric.</li>
</ul>
<!-- <div class="form-group">
<div class="custom-control custom-checkbox text-small">
<input type="checkbox" class="custom-control-input" id="sign-up-agree">
<label class="custom-control-label" for="sign-up-agree">I agree to the <a target="_blank" href="utility-legal-terms.html">Terms & Conditions</a>
</label>
</div>
</div> -->
<button class="btn btn-primary btn-block" type="submit">Create Account</button>
</form>
代码中没有提到电子邮件,但出于某种原因,密码被保存为电子邮件,而实际密码没有设置。您需要明确设置密码,或者在第三个参数中发送密码,create_user方法的第二个参数是email,这就是为什么密码被设置为电子邮件的原因。 你需要这样的东西
user = User.objects.create_user(username=request.POST['username'])
user.set_password('new password')
user.save()
您需要显式设置密码,或者在create_user方法的第三个参数中发送密码,第二个参数是email,这就是为什么密码被设置为email。 你需要这样的东西
user = User.objects.create_user(username=request.POST['username'])
user.set_password('new password')
user.save()
您的代码:
user = User.objects.create_user(request.POST['username'], request.POST['password1'])
user.save()
见:
所以,糟糕的是,您将密码作为第二个参数发送,它被解释为电子邮件地址
create_user(username=request.POST['username'], password=request.POST['password1'])
应该可以工作。您的代码:
user = User.objects.create_user(request.POST['username'], request.POST['password1'])
user.save()
见:
所以,糟糕的是,您将密码作为第二个参数发送,它被解释为电子邮件地址
create_user(username=request.POST['username'], password=request.POST['password1'])
应该有用。@winston:sami是第一个,我更喜欢设置密码。我怀疑我的方法是否会进行哈希运算。他应该是accepted@winston:虽然sami是第一个,但我更喜欢设置密码。我怀疑我的方法是否会进行哈希运算。他的建议应该被接受