Django 响应没有内容 - 如何调试?
Django Response has no content - How to debug?
我正在尝试向我的 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。
我不确定如何查看出了什么问题,所以大部分时间我只是在研究如何调试此过程。服务器代码中的打印语句没有显示,所以我完全不知道发生了什么。有什么想法吗?
302状态码表示重定向,如果你想看到那个重定向的内容你必须添加“follow=True
”:
response = self.client.post('/register/', data, follow=True)
https://docs.djangoproject.com/en/1.8/topics/testing/tools/
顺便说一下...为了调试正在发生的事情我建议你使用像 PyCharm 这样的 IDE,你可以在其中添加断点并逐步执行代码!
我正在尝试向我的 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。
我不确定如何查看出了什么问题,所以大部分时间我只是在研究如何调试此过程。服务器代码中的打印语句没有显示,所以我完全不知道发生了什么。有什么想法吗?
302状态码表示重定向,如果你想看到那个重定向的内容你必须添加“follow=True
”:
response = self.client.post('/register/', data, follow=True)
https://docs.djangoproject.com/en/1.8/topics/testing/tools/
顺便说一下...为了调试正在发生的事情我建议你使用像 PyCharm 这样的 IDE,你可以在其中添加断点并逐步执行代码!