gpt4 book ai didi

python - Django——裁剪并保存 model.Imagefield 中的 Imagefield

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:28 27 4
gpt4 key购买 nike

我需要从表单中裁剪出抢救出来的图片,存入model.ImageField

我的模型.py

class Story(models.Model): 
creator = models.ForeignKey(User_info)
storyid = models.AutoField(primary_key=True)
text = models.TextField()
title = models.CharField(max_length=255)
photo = models.ImageField(upload_to='story_picture')

我的观点.py

from PIL import Image
from io import BytesIO
from django.core.files import File

def post(self, request, *args, **kwargs):

form = writeForm(request.POST, request.FILES)
print form

User = request.user
usuario = User_info.objects.get(user=User.id)

story = Story()
story.creator = usuario
story.text = request.POST['story']
story.title = request.POST['title']

newImage = Image.open(form.cleaned_data['photo'])

story.photo = newImage.crop((10,10,800,800))

story.save()

我需要在 asosiarla 到模型实例之前裁剪图像

最佳答案

试试这个:

将裁剪区域保存在媒体根目录中的某个位置(确保路径是绝对路径):

story.save(settings.MEDIA_ROOT + 'something.jpeg')

然后只需为图像字段设置图像名称并保存对象。这次路径应该是相对的,因为它将用于图像 url(我假设你已经在提供你的媒体文件):

obj.image_field.name = '/media/something.jpeg'
obj.save()

P.S.:不要用前导大写字母命名对象变量,这是一种不好的做法(使用 user 而不是 User)。只有类名应该以大写字母开头。此外,Python 约定是在变量名中使用下划线作为单词分隔符(使用 new_image 代替 newImage,使用 write_form 代替 writeFrom),而不是驼峰式,除了在类名中,where 是可以的。

关于python - Django——裁剪并保存 model.Imagefield 中的 Imagefield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31657368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com