Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未为新django用户设置密码_Python_Django - Fatal编程技术网

Python 未为新django用户设置密码

Python 未为新django用户设置密码,python,django,Python,Django,当新用户注册帐户时,“管理”面板显示,尽管通过views.py保存密码,但尚未为该用户设置密码。我注意到的另一件奇怪的事情是,密码被保存到数据库的email字段中。代码看起来很好。不知道我哪里出错了。任何帮助都将不胜感激 注册html模板 {% if user.is_authenticated %} <h2>currently logged in as {{ user.username }} </h2> {%

当新用户注册帐户时,“管理”面板显示,尽管通过views.py保存密码,但尚未为该用户设置密码。我注意到的另一件奇怪的事情是,密码被保存到数据库的email字段中。代码看起来很好。不知道我哪里出错了。任何帮助都将不胜感激

注册html模板

{% 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 &amp; 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是第一个,但我更喜欢设置密码。我怀疑我的方法是否会进行哈希运算。他的建议应该被接受