我的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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)