0

我目前正在使用:

  1. 蟒蛇 3.3
  2. Django 1.6.5
  3. django-imagekit 3.2.1
  4. django-guardian (我不认为这是相关的,我可以确认 Profile 模型上的行级权限是正确的)

我似乎无法通过 ModelForm 更改个人资料图片。通过 UpdateView 提交时,ModelForm 似乎更新了附加到模型的所有其他字段(转到 success_url)。我尝试过使用普通的 ImageField 并使用 form-ProcessedImageField ,但这也不起作用。奇怪的是,我实际上可以使用 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.cleaned_data['avatar'] 是无

self.request.FILES 是 MultiValueDict: {}

4

0 回答 0