【问题标题】:How save image into models after create new image with pillow in django?在 django 中使用枕头创建新图像后如何将图像保存到模型中?
【发布时间】:2019-06-10 09:38:27
【问题描述】:

首先,我用枕头库创建一个图像并保存到媒体文件中, 现在,我想保存到临时模型但不保存文件。

型号:

class TemporaryImage(models.Model):

        image               = models.ImageField(upload_to='temporary_images', verbose_name=_('image'))

        class Meta:
            verbose_name = _('Temporary image')
            verbose_name_plural = _('Temporary images')

查看:

image = Image.new('RGBA', (1024, 800), (255, 255, 255, 0)) 
image.save("media/output.png")
mediaPathImage = settings.MEDIA_ROOT + '/output.png'
print('media path : ', mediaPathImage)
Tobj = TemporaryImage()

Tobj.image = mediaPathImage
Tobj.save()

在这张图片中: no file chosen https://imge.to/i/ytogF

【问题讨论】:

  • 首先:在save函数和Tobj.image = mediaPathImage行中使用相同的变量,所以你100%确定它们是一样的。

标签: python django python-3.x django-views python-imaging-library


【解决方案1】:

您需要将文件保存到正确的位置,然后将文件名设置为您的图像字段

image = Image.new('RGBA', (1024, 800), (255, 255, 255, 0))
filename = something sensible because they cannot all be saved to output.png
filepath = settings.MEDIA_ROOT + '/temporary_images/' + filename
image.save(filepath)
Tobj = TemporaryImage()
Tobj.image.name = filepath
Tobj.save()

【讨论】:

  • 我测试但不起作用:点击url后 --> imge.to/i/yaZcj
  • 我更改了Tobj.image.name=('/temorary_images/' + filename) 并成功工作,感谢HenryM
猜你喜欢
  • 2020-05-06
  • 1970-01-01
  • 2018-04-28
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多