我是一个法国人,我正在研究Django。我开始,我有一个错误。
def setUp(self):
self.username = 'admin'
self.password = 'admin'
self.datetime = 'Tue, 15 Nov 1994 08:12:31 GMT'
self.temperature = '15.6'
self.presence = '56'
def test_presence_post(self):
#frame = 'presence=' + self.presence + '&datetime=2014-12-12 16:45:45'
c = Client()
c.login(username=self.username, password=self.password)
response = c.post('/datapresence', {'presence=' + self.presence + '&datetime=2014-12-12 16:45:45'},
content_type="application/x-www-form-urlencoded", HTTP_DATE=datetime)
self.assertEqual(response.status_code, 201)
我的错误:
self.assertEqual(response.status_code,201)
断言错误:400!= 201
如果我使用高级休息客户端,则可以使用带有网址和数据的POST请求。
非常感谢。
答案 0 :(得分:1)
{'presence=' + self.presence + '&datetime=2014-12-12 16:45:45'}
是一个包含单个键且没有值的集合,而不是post()
所期望的字典。应该是{'presence': self.presence, 'datetime':'2014-12-12 16:45:45'}
。服务器检测到无效请求并返回400。
我也会尝试不使用content_type="application/x-www-form-urlencoded", HTTP_DATE=datetime
,默认值应该至少与提供的值一样好。