当用户在 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
模型.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
有没有人这样做过?我怎样才能完成它?