0

我有这样的代码:

choices = request.POST.getlist('choice')
    #choices1 = len(choices) 
    for i in choices:
        new_source = source +"/"+ i 
        start_date = datetime.datetime.utcnow().replace(tzinfo=utc)
        source12 = new_source.replace(' ', '') #Remove whitespaces
        subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', source12, destination], 
                                    stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
        end_date = datetime.datetime.utcnow().replace(tzinfo=utc)
        duration = end_date - start_date
        start_date = start_date.strftime("%B %d, %Y, %H:%M%p")
        end_date = end_date.strftime("%B %d, %Y, %H:%M%p")
        #basename = os.path.basename(source) #Get file_name
        extension = os.path.splitext(i)[1][1:] #Get the file_extension
        fullname = os.path.join(destination, i) #Get the file_full_size to calculate size
        st = int(os.path.getsize(fullname))
        f_size = size(st, system=alternative)
        dur1 = convert_timedelta(duration)
        dur = duration_conversion(dur1)
        b = File(users_id=request.user.id, file_name=i, type=extension, source='ngs.pradhi.com', start_date=start_date, end_date=end_date, duration=dur, size_overview=st, size=f_size, flag='F')
        b.save()

    return render_to_response('uploaded_files.html', {'files': b, 'username':username, 'host':a, 'files_server':files_in_server, 'file_size':filesize, 'date':date, 'total_files_selected':i , 'list_users':users_b}, context_instance=RequestContext(request))  

我想找到选择列表的长度以便显示给用户。首先,我尝试将变量传递为:

choices = request.POST.getlist('choice')
choices1 = len(choices) 

当用户选择了多个文件时,将choices1 变量传递给模板仅返回0。因此,我尝试传递产生此错误的变量 i:

UnboundLocalError at /uploaded_files/ local variable 'i' referenced before assignment?

我究竟做错了什么?

4

1 回答 1

0
 i = ""

 choices = request.POST.getlist('choice[]')
 for i in choices:
    ........

我应该在分配之前有默认值 i="" 并且要获得您必须输入的列表 []

于 2013-01-25T17:05:33.993 回答