python – Django – 在model.Imagefield中裁剪并保存Imagefield

python – Django – 在model.Imagefield中裁剪并保存Imagefield,第1张

概述我需要从表单中剪切获救的图像并将其存储在model. ImageField中 我的models.py class Story(models.Model): creator = models.ForeignKey(User_info) storyid = models.AutoField(primary_key=True) text = models.TextField() tit 我需要从表单中剪切获救的图像并将其存储在model. ImageFIEld中

我的models.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')

我的vIEws.py

from PIL import Imagefrom io import BytesIOfrom django.core.files import filedef 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.:不要使用前导大写命名对象变量,这是一种不好的做法(使用用户而不是用户).只有类名应以大写字母开头.此外,Python约定是使用下划线作为变量名中的单词分隔符(使用new_image而不是newImage,write_form而不是writeFrom),而不是类似于驼峰的情况,除了在类名中,哪里好.

总结

以上是内存溢出为你收集整理的python – Django – 在model.Imagefield中裁剪并保存Imagefield全部内容,希望文章能够帮你解决python – Django – 在model.Imagefield中裁剪并保存Imagefield所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1197345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存