Python Django文件字段截断request.POST数据

Python Django文件字段截断request.POST数据,python,django,django-forms,django-templates,django-views,Python,Django,Django Forms,Django Templates,Django Views,我有一个Django模板,它显示一个文件字段,如下所示: <div class="fieldWrapper"> {{ auth_users_ext.user_pic.error }} Image Upload: {{ auth_users_ext.user_pic }} </div> 无论如何,当我在视图中指定request.FILES['user\u pic']时,我什么也得不到 已更新 以下是视图中的相关代码: def STAFF(r

我有一个Django模板,它显示一个文件字段,如下所示:

  <div class="fieldWrapper">
      {{ auth_users_ext.user_pic.error }}
      Image Upload: {{ auth_users_ext.user_pic }}
  </div>
无论如何,当我在视图中指定request.FILES['user\u pic']时,我什么也得不到

已更新

以下是视图中的相关代码:

def STAFF(request, uid=None, template='auth_user.html'):
    [ ... ]
    user = request.user
    is_admin = user.groups.filter(name='*** ADMIN_GROUP_NAME ***')

    if uid == None:
        instance = AuthUser()
        ext_instance = AuthUserExt()
    else:
        instance = AuthUser.objects.get(auth_user_id=uid)
        ext_instance = AuthUserExt.objects.get(auth_user_id=uid)

    if request.method == 'POST':
        # get image request.FILE object
        if request.FILES:
            avatar = request.FILES['user_pic']
            # build destination path for os file handling
            dest_path = settings.MEDIA_ROOT + request.POST['username'] + '/avatar/'
            # create user/avatar dir if not exist
            if not os.path.exists(dest_path):
                os.makedirs(dest_path)
            # open file handle at the intended destination and write our request.FILE
            if os.path.isfile(dest_path + avatar.name):
                os.remove(dest_path + avatar.name)
            destination = open(dest_path + avatar.name, 'wb+')
            destination.write(avatar.read())
            destination.close()
            # build uri path for database insert
            uri_path = settings.MEDIA_URL + request.POST['username'] + '/avatar/' + avatar.name
        else:
            [ ... ] # lands here, because Django produces no request.FILES

这个问题最终是由于谷歌Chrome出现了某种问题。显然,它在该文件字段的某些方面有问题,并且截断了返回到服务器的实际POST数据,但是在内部处理的事情足以让我在检查调试信息时认为一切都很好。其他所有浏览器都工作正常。

请显示您的视图代码。您是否检查了Python Imaging Library(PIL)是否已正确安装?@zubair89:模型中没有实际的文件处理。唯一的服务器端处理将是移动上传的文件,但这并没有走多远,因为Django遇到此字段时无法生成
请求.POST\FILES
数据。这段代码在五个月前第一次测试时就已经运行了,但从那时起,环境中的许多方面都发生了变化,我无法知道问题可能是什么。日志没有显示我可以检测到的信息,只是显示了500个错误。
def STAFF(request, uid=None, template='auth_user.html'):
    [ ... ]
    user = request.user
    is_admin = user.groups.filter(name='*** ADMIN_GROUP_NAME ***')

    if uid == None:
        instance = AuthUser()
        ext_instance = AuthUserExt()
    else:
        instance = AuthUser.objects.get(auth_user_id=uid)
        ext_instance = AuthUserExt.objects.get(auth_user_id=uid)

    if request.method == 'POST':
        # get image request.FILE object
        if request.FILES:
            avatar = request.FILES['user_pic']
            # build destination path for os file handling
            dest_path = settings.MEDIA_ROOT + request.POST['username'] + '/avatar/'
            # create user/avatar dir if not exist
            if not os.path.exists(dest_path):
                os.makedirs(dest_path)
            # open file handle at the intended destination and write our request.FILE
            if os.path.isfile(dest_path + avatar.name):
                os.remove(dest_path + avatar.name)
            destination = open(dest_path + avatar.name, 'wb+')
            destination.write(avatar.read())
            destination.close()
            # build uri path for database insert
            uri_path = settings.MEDIA_URL + request.POST['username'] + '/avatar/' + avatar.name
        else:
            [ ... ] # lands here, because Django produces no request.FILES