ユーザーが Django の UpdateView で画像をアップロードするときに、3 つの異なるサイズの画像を作成できるようにしたいと考えています。
また、アップロードするファイルの名前を username_thumb_01.jpg、username_original_01.jpg、username_medium_01.jpg などに変更できるようにしたいと考えています。
ビュー.py
class UserProfileEditView(UpdateView):
model = UserProfile
form_class = UserProfileForm
template_name = "edit_profile.html"
フォーム.py
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
website = models.URLField(null=True, blank=True)
avatar = models.ImageField(upload_to="user-photos", null=True, blank=True)
UserProfileEditView に次のようなものを追加しようとしましたが、機能せず、正しい軌道に乗っているかどうかわかりませんでした。
def form_valid(self, form):
if self.request.files:
filename= join(settings.MEDIA_ROOT, profile.avatar.name)
im = Image.open(filename)
im.thumbnail((160,160), Image.ANTIALIAS)
im.save(imfn, "JPEG")
form.save
誰もこれを以前にやったことがありますか?どうすればそれを達成できますか?