Django 测试客户端 post 数据为空

Django test client post data is empty

我有一个非常简单的应用程序,我必须使用 django 测试客户端创建一个简单的 post 请求。

userFrom = Client()
userFrom.login(username="admin1",password=test_password)
data = {"some":"data"}
responseNew = userFrom.post("/foo/too/",simplejson.dumps(data),content_type="application/json")

当我在“/foo/too/”的视图中检查 post 请求时,post 字典是空的。

我检查了以下问题。这是行不通的。 我正在使用 Django 1.5。

Post dictionary is empty

您可以尝试类似的操作:

responseNew = userFrom.post("/foo/too/", data)

如果post数据还是空的尝试发送json

client.post(url, json.dumps(data), content_type="application/json")

以下适合我。

Post 您的数据原样,将 content_type 设置为 "application/json":

response = user.post("/foo/too/", data, content_type="application/json")

然后在您的视图中,像这样从 request.body 中读取数据:

data = json.loads(request.body)