擅长:python、mysql、java
<p>首先,行<code>username = user_form.get_username()</code>给出了一个错误,因为正如消息所说,表单没有<code>get_username</code>方法。您可以使用user访问用户名_已清理的数据['用户名']</p>
<p>其次,行<code>password = user_form.clean</code>将给出一个错误,因为表单没有属性<code>clean</code>。如果需要,可以使用<code>user_form.cleaned_data['password1']</code>从<code>password1</code>字段中获取值。在</p>
<p>在<code>login</code>用户之前,必须对其进行身份验证,否则将得到一个关于用户没有属性<code>backend</code>的错误。在</p>
<p>综合起来,你有:</p>
<pre><code>if user_form.is_valid():
user_form.save()
username = user_form.cleaned_data['username']
password = user_form.cleaned_data['password1']
user = authenticate(username=username, password=password)
login(request, user)
</code></pre>
<p>您必须通过将导入更改为来导入<code>authenticate</code>方法:</p>
^{pr2}$
<p>请注意,您没有在代码中的任何地方设置<code>registered=True</code>。通常,在表单成功提交后重定向是一个很好的做法,以防止重复提交。在</p>