擅长:python、mysql、java
<p>问题在于创建用户对象的方式。你知道吗</p>
<p>Django不会将密码以明文形式存储在数据库中,而是存储其哈希值。但是在你的密码里密码是用纯文本设置的。你知道吗</p>
<p>因此,当您在内部使用<code>c.login(...)</code>时,Django将调用<code>check_password</code>方法,该方法将根据您传递的密码生成哈希值,并将其与存储在数据库中的密码进行比较,结果将返回<code>False</code>,因为DB中的“gaul”不等于get\u hexdigest('gaul')</p>
<p>有两种选择:</p>
<p>1)使用<code>User.objects.create_user</code>方法处理密码散列:</p>
<pre><code>def setUp(self):
self.user = User.objects.create_user(username='tauri',
password='gaul',
email='')
</code></pre>
<p>2)或使用<code>set_password</code>方法设置密码:</p>
<pre><code>def setUp(self):
self.user = user = User.objects.create(username='tauri')
user.set_password('gaul')
user.save()
</code></pre>