0

私は現在使用しています:

  1. パイソン3.3
  2. ジャンゴ 1.6.5
  3. ジャンゴイメージキット 3.2.1
  4. django-guardian (関係ないと思います。プロファイル モデルで行レベルのアクセス許可が正しいことを確認できます)

ModelForm でプロフィール画像を変更できないようです。ModelForm は、UpdateView (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'] は None です

self.request.FILES は MultiValueDict です: {}

4

0 に答える 0