models.py
class Movies_list(models.Model): movies_thumbnail=models.ImageField(default='thumbnail.jpg',upload_to='movies_pics')
def save(self,*args,**kwargs):
super().save(*args,**kwargs)
img=Image.open(self.movies_thumbnail.path)
if img.height > 100 or img.width > 100:
output_size = (200,300)
image_movies=img.resize(output_size,resample=Image.ANTIALIAS)
image_movies.save(self.movies_thumbnail.path)
settings.py
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
views.py
form=Update_Movies_form(
data=(request.POST or None),
files=(request.FILES or None),
# instance=obj
)
form.fields["movies_thumbnail"].initial = obj.movies_thumbnail
movies_detail=Movies_list.objects.filter(movies_id=movies_id)
print(movies_detail)
url=url_filter(request,movies_id)
if form.is_valid():
if request.user.is_staff:
obj_movies_update=Movies_list.objects.filter(movies_id=movies_id).update(
movies_thumbnail=request.FILES["movies_thumbnail"],
forms.py
class Create_Movies_form(forms.Form):
movies_thumbnail=forms.ImageField(widget=forms.ClearableFileInput(attrs={'placeholder': 'thumbnail'}))
在提交更新表单时,它将movie_thumbnail保存在media文件夹中,而不是在media / movies_pics中,因此我尝试通过替换
来将其强制保存在movie_pics中movies_thumbnail = request.FILES [“ movies_thumbnail”],
到
movies_thumbnail =“ movies_pics /” + str(request.FILES [“ movies_thumbnail”]),
它可以将图像保存在movie_pic中,并且工作正常,但没有按照models.py中的指定裁剪图像。
def save(self,*args,**kwargs): super().save(*args,**kwargs) img=Image.open(self.movies_thumbnail.path) if img.height > 100 or img.width > 100: output_size = (200,300) image_movies=img.resize(output_size,resample=Image.ANTIALIAS) image_movies.save(self.movies_thumbnail.path)