我正在尝试通过Django shell保存一张图片文件。
我的model.py
如下:
class user(models.Model):
name = models.CharField(max_length=20)
pic = models.ImageField()
管理员和表单都很好,但我想使用shell保存图像:
类似这样的东西
>>> user1 = User(name='abc', pic="what to write here")
我正在尝试通过Django shell保存一张图片文件。
我的model.py
如下:
class user(models.Model):
name = models.CharField(max_length=20)
pic = models.ImageField()
管理员和表单都很好,但我想使用shell保存图像:
类似这样的东西
>>> user1 = User(name='abc', pic="what to write here")
from django.core.files import File
user1=User(name='abc')
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'r')))
最终会在ImageField
指定的upload_to
目录中复制名为abc.png
的图片。
在这种情况下,user1.pic.save
方法也会保存 user1
实例。有关保存ImageField
的文档可以在这里找到:https://docs.djangoproject.com/en/dev/ref/files/file/
codecs.charmap_decode(input,self.errors,decoding_table)[0]odeError: 'charmap' codec can't decode byte 0x8f in position 207: char to <undefined>
你知道如何解决吗? - AllTradesJackfrom django.core.files import File
user1=User(name='abc')
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'rb')))
如果您在使用Python3,请使用'rb'代替'r'。
django.core.files.uploadedfile import UploadedFile
user1=User(name='abc')
user1.pic.save('abc.png', UploadedFile(file=open('/tmp/pic.png', 'rb'), content_type='image/png'))