通过django shell保存图像/文件

Ift*_*ari 23 python django django-models django-file-upload django-shell

我试图通过django shell保存图像文件.

model.py是:

class user(models.Model):
    name=models.CharField(max_length=20)
    pic=models.ImageField()
Run Code Online (Sandbox Code Playgroud)

使用admin和表单可以很好地使用Everyhing,但我想使用shell保存图像:

就像是

>>>user1=User(name='abc', pic="what to write here")
Run Code Online (Sandbox Code Playgroud)

edw*_*ard 49

from django.core.files import File

user1=User(name='abc')
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'r')))
Run Code Online (Sandbox Code Playgroud)

最终将图像abc.png复制到upload_to指定的目录中ImageField.

在这种情况下,该user1.pic.save方法还将保存user1实例.保存文档ImageField可以在这里找到https://docs.djangoproject.com/en/dev/ref/files/file/

  • 罗伊在下面回答说,@ AllTradesJack使用'rb'而不是'r'标志 (2认同)

Gop*_*Roy 20

from django.core.files import File
user1=User(name='abc')
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'rb')))
Run Code Online (Sandbox Code Playgroud)

请使用'rb'而不是'r'.如果您使用的是python3.

  • 这应该是对原始答案的评论。 (4认同)