我正在尝试为PasswordChangeView的get_success_url
方法创建一个测试,以查看重定向是否按预期工作。
我正在寻找的预期行为(采用有效格式)是更改密码,并获得302重定向响应。
但是由于某些未知的原因,我似乎无法传递有效的表单数据,因此得到200的响应,并且测试一直失败。
有人知道为什么下面的测试给我一个无效的表格吗?我想念什么?
def test_success_url(self):
client = Client()
user = User.objects.create(username="anon", password="pw")
client.force_login(user)
data = {
'old_password': 'pw',
'new_password1': 'newpw',
'new_password2': 'newpw',
}
response = client.post('/anon/change-password/', data)
user.refresh_from_db()
self.assertTrue(user.check_password('newpw))
self.assertEqual(response, 302)
class UserPasswordChangeView(LoginRequiredMixin, PermissionMixin, PasswordChangeView):
def get_success_url(self):
return reverse("user:detail", kwargs={ "username": self.request.user })
答案 0 :(得分:0)
您应该使用create_user
创建用户对象,而不是create
。
user = User.objects.create_user(username="anon", password="pw")