在for循环中分配多个iterables

时间:2016-05-10 11:49:58

标签: python

我正在编写一个文件上传器,其中包含两个属性,供用户上传1到3个文件。到目前为止,我已经提出:

for (file, text, url) in zip(request.FILES, request.POST['portfolio-text'], request.POST['portfolio-url']):
    new_file = File.objects.create(user=request.user, file=request.FILES[file], text=text, url=url)

与此产生的问题是request.POST['portfolio-text']request.POST['portfolio-url']是字符串。使用zip,两个字符串将逐个字符地迭代。因此,如果我有一个包含文本u'foo'和网址u'www.baz.com'的文件,则第一次迭代将如下所示:

file: <file>
text: u'f'
url: u'w'

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为这会奏效:

for (file, text, url) in zip(request.FILES, [request.POST['portfolio-text']], [request.POST['portfolio-url']]):
    new_file = File.objects.create(user=request.user, file=request.FILES[file], text=text, url=url)