Python Can';t使用imagekit ModelForm更改图像

Python Can';t使用imagekit ModelForm更改图像,python,django,django-imagekit,imagekit,Python,Django,Django Imagekit,Imagekit,我目前正在使用: Python 3.3 Django 1.6.5 django imagekit 3.2.1 django guardian(我认为这不相关,我可以确认配置文件模型上的行级权限是正确的) 我似乎无法通过ModelForm更改配置文件图像。当通过UpdateView提交时,ModelForm似乎会更新附加到模型的所有其他字段(转到success\uURL)。我尝试过使用普通的ImageField和FormProcessedImageField,但也没有成功。奇怪的是,事实上我可以使

我目前正在使用:

  • Python 3.3
  • Django 1.6.5
  • django imagekit 3.2.1
  • django guardian(我认为这不相关,我可以确认配置文件模型上的行级权限是正确的)
  • 我似乎无法通过ModelForm更改配置文件图像。当通过UpdateView提交时,ModelForm似乎会更新附加到模型的所有其他字段(转到success\uURL)。我尝试过使用普通的ImageField和FormProcessedImageField,但也没有成功。奇怪的是,事实上我可以使用UpdateView“删除”图像(这意味着对图像的引用被删除,它仍保留在磁盘上)。此外,我可以在管理页面中自由更改图像,它也可以正确生成缩略图

    不知道还能尝试什么,也不知道这里发生了什么。非常感谢您的帮助

    型号:

    class Profile(models.Model):
        ...
        avatar = ProcessedImageField(
            upload_to=get_upload_filepath,
            processors=[ResizeToFill(500, 500)],
            format='JPEG',
            blank=True,
            default='img/200x200.gif'
        )
        avatar_thumbnail = ImageSpecField(
            source='avatar',
            processors=[ResizeToFill(200,200)],
            format='JPEG',
            options = {
                'quality': 100
            }
        )
        ... some more fields
    
    辅助功能:

    def get_upload_filepath(instance, filename):
        return '/'.join(['img', instance.user.username, 'avatar.jpg'])
    
    模型形式:

    class ProfileForm(ModelForm):
        ... overridden widgets on some fields
        class Meta:
            model = Profile
            fields = ('first_name', 'last_name', 'birth_date', 'phone_number', 'avatar')
    
    编辑:

    form.u数据['avatar']为无


    self.request.FILES是多值dict:{}

    是否使用多部分/表单数据类型?ModelForm生成的输入类型:似乎与我在管理页面中看到的输入类型相同。你说得对。表单上缺少enctype。谢谢你!