POST 列表到 django restapi

pkm*_*pkm 3 python django django-rest-framework

我正在尝试发布包含一些数据的字符串列表,但无法在服务器上接收该列表,它只给了我列表的最后一个元素

con = ["71qweq74520", "8324wqe57", "81ewqewq166"] 
Run Code Online (Sandbox Code Playgroud)

已收到

con = 81ewqewq166
Run Code Online (Sandbox Code Playgroud)

在服务器 API 接收的代码:-

@csrf_exempt
@api_view(['POST'])
def getUser(request):
    if request.method == 'POST':
        if isapiValid(request):
            for params in request.POST:
                print params,request.POST[params]
                #this prints last element of array/lis
Run Code Online (Sandbox Code Playgroud)

要发布的 python 脚本:-

con = ["71qweq74520", "8324wqe57", "81ewqewq166"] 
data = { 'apikey':apikey, 'sig':sig ,'con': con}
data2 = json.dumps(data)
#hostname = '127.0.0.1:8000'
hostname = 'XX.XX.XX.XX'
method = 'method'
task = 'getUser'
url = 'http://'+ hostname + '/' + method + task
r = requests.post(url, data=data)
#r = requests.post(url, data=data2) this too fails
Run Code Online (Sandbox Code Playgroud)

我怎样才能成功获取发布列表?

Httpd 日志的输出:-

 [Wed Jan 27 13:35:05.868468 2016] [:error] [pid 18858] API validation passed
    [Wed Jan 27 13:35:05.868512 2016] [:error] [pid 18858] 81ewqewq166
    [Wed Jan 27 13:35:05.868547 2016] [:error] [pid 18858] one 99qwerty99
    [Wed Jan 27 13:35:05.868566 2016] [:error] [pid 18858] apikey 4618d76f2fb84eacbac3339e5c7f2b57
    [Wed Jan 27 13:35:05.868589 2016] [:error] [pid 18858] sig e8fe50c733ec6513c91f10caf63e7864
    [Wed Jan 27 13:35:05.868608 2016] [:error] [pid 18858] con  81ew
qewq166
Run Code Online (Sandbox Code Playgroud)

request.post 中收到的内容是:-

 {
            "_content_type": "application/json",
            "_content": "{\"one\": \"9998889999\",\"con\": [7106174520, 8324100257]}\r\n"
        }
Run Code Online (Sandbox Code Playgroud)

但是当我做 request.POST.get('con') 时只收到最后一个元素???

Kac*_*bek 5

这是 Django 中有趣的事情之一。如果您想从发布请求中获取列表,您应该使用request.POST.getlist(your_key). 在你的情况下request.POST.getlist('con')

您可以在此处找到有关此主题的更多信息。