如何获取下载文件的名称?

2024-10-02 12:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

请帮忙解决这个问题。在

我用上面的表格加载文件。这是视图.py公司名称:

def change_avatar(request): 
    entry_user_profile = UserProfile.objects.get(user_ptr_id=request.user.id)   

    avatar = entry_user_profile.avatar                  
    form = ChangeAvatarForm(instance=entry_user_profile)        

    if request.method == 'POST' and request.is_ajax():                                                              
        form = ChangeAvatarForm(request.POST, request.FILES, instance=entry_user_profile)
        if form.is_valid():             
            form.save() 

            for filename, blob in request.FILES.iteritems():
                name = request.FILES[filename].name     

            data = {'sourceImg': name[0]}   
            print(name[0])
            return HttpResponse(json.dumps(data), content_type='application/json')          

    t = loader.get_template('page_change_avatar.html')
    c = RequestContext(request, {
        'form': form,
        'avatar': avatar,
    }, [custom_proc])   

    return HttpResponse(t.render(c))    

问题是没有字典“name”文件名。日志中的错误消息如下:

AttributeError: 'MultiValueDict' object has no attribute 'iteritems'

第3.4页/d1.6页


Tags: instancenameformidgetifrequestfiles
1条回答
网友
1楼 · 发布于 2024-10-02 12:26:16

iterateitems()替换为items()。在

def change_avatar(request): 
   entry_user_profile = UserProfile.objects.get(user_ptr_id=request.user.id)   

        avatar = entry_user_profile.avatar                  
        form = ChangeAvatarForm(instance=entry_user_profile)        

        if request.method == 'POST' and request.is_ajax():                                                              
            form = ChangeAvatarForm(request.POST, request.FILES, instance=entry_user_profile)
            if form.is_valid():             
                form.save() 

                 #changed here    

                for filename, blob in request.FILES,items():
                    name = request.FILES[filename].name     

                data = {'sourceImg': name[0]}   
                print(name[0])
                return HttpResponse(json.dumps(data), content_type='application/json')          

        t = loader.get_template('page_change_avatar.html')
        c = RequestContext(request, {
            'form': form,
            'avatar': avatar,
        }, [custom_proc])   

        return HttpResponse(t.render(c)) 

相关问题 更多 >

    热门问题