Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在for循环中分配多个iterable_Python - Fatal编程技术网

Python 在for循环中分配多个iterable

Python 在for循环中分配多个iterable,python,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=u

我正在编写一个具有两个属性的文件上传程序,供用户上传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'
和url
u'www.baz.com'
,第一次迭代将如下所示:

file: <file>
text: u'f'
url: u'w'
文件:
文本:u'f'
网址:u'w'

如何修复此问题?

我认为这将起作用:

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)

我认为这会奏效:

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)