Django只从列表中获取一个字符串而不是全部

时间:2013-10-21 23:00:13

标签: python django post request

我的request.POST中有两个列表,我正在尝试在我的代码中使用。它们看起来如下,我甚至通过查看Django的转储确认了它们的结构:

POST:<QueryDict: {u'rasters': [u'240p', u'720p'], u'title': [u'algies_2'], u'destination': [u'algies_2'], u'framerate': [u'60'], u'formats': [u'MP4', u'WEBM']

我想要做的是我的一个观点中的以下内容:

...
'-p 2', '-f', ",".join([format.lower() for format in request.POST['formats']]), '-t', ",".join(request.POST['rasters'])
...

然而,它正在做的是没有将'栅格'和'格式'列表作为逗号分隔列表(即'240p,720p'和'mp4,webm')加入,而只是返回以逗号分隔的列表每个列表中最后一个条目的字符(即'7,2,0,p'和'w,e,b,m')。我觉得我在这里做的一切都很好;我错过了某种微妙的错误吗?

1 个答案:

答案 0 :(得分:0)

POST是一个QueryDict对象,当在HTTP POST中为同一个密钥提交多个值时,它具有特殊的行为。要获取所有这些,请使用getlist方法。所以你的格式代码看起来像这样:

",".join([format.lower() for format in request.POST.getlist('formats')])