擅长:python、mysql、java
<p>首先,不需要使用<code>self.c = Client()</code>创建一个新的客户机,只需使用<code>self.client</code>。不应使用<code>__init__</code>方法访问数据库。相反,您应该在<code>setUp</code>或<a href="https://docs.djangoproject.com/en/1.11/topics/testing/tools/#django.test.Client.force_login" rel="nofollow noreferrer">^{<cd5>}</a>方法中设置用户。在</p>
<pre><code>def setUp(self, *args, **kwargs):
self.user = MyCustomEmailUser.objects.all()[0]
</code></pre>
<p>如果要检查客户机登录是否有效,应该检查<code>self.client.login(...)</code>的值。没有点检查<code>self.user.is_authenticated()</code>,因为它总是返回<code>True</code>。在</p>
<p>您的登录不工作,因为<code>self.user.password</code>是哈希密码,而不是实际密码。在</p>
<p>您可以改为使用<a href="https://docs.djangoproject.com/en/1.11/topics/testing/tools/#django.test.TestCase.setUpTestData" rel="nofollow noreferrer">^{<cd10>}</a>。在</p>
^{pr2}$