Django Response没有内容 - 如何调试?

时间:2015-07-01 06:57:29

标签: python django unit-testing testing python-3.4

我正在尝试将测试添加到我的Django 1.8应用程序中,并且在测试时遇到了麻烦,以确保注册顺利通过。我不知道如何调试以查看错误。

设置客户端后,我在代码中进行了以下调用。

class LoginTests(TestCase):
    def setUp(self):
        self.client = Client()

    def test_user_can_select_vegetarian_on_account_create(self):

        data = {'username': 'TestUser', 'password1':'pass', 'password2':'pass', 'email':'bad@email.com', 'is_admin':True}
        r = self.client.post('/register/', data)
        print(r.content)
        self.assertTrue(r.context is not None)
    print(list(User.objects.all()))

print(r.content)只是打印一个空白,所以没有任何东西回来,虽然这是一个回应。当我查看状态代码时,我得到一个302。

我不知道如何看出出现了什么问题,所以大多数情况下我只是在研究如何调试这个过程。服务器代码中的打印语句没有显示出来,所以我完全不知道发生了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

302状态代码表示重定向,如果您想查看该重定向的内容,则必须添加" follow=True":

response = self.client.post('/register/', data, follow=True)

https://docs.djangoproject.com/en/1.8/topics/testing/tools/

顺便说一句......为了调试正在发生的事情我建议你使用像PyCharm这样的IDE,你可以在其中添加断点并逐步完成代码!