Saving image/file through django shell

2019-03-09 19:44发布

问题:

I am trying to save an image file through django shell.

My model.py is:

class user(models.Model):
    name=models.CharField(max_length=20)
    pic=models.ImageField()

Everyhing is fine with admin and forms but I want to save image using shell:

something like

>>>user1=User(name='abc', pic="what to write here")

回答1:

from django.core.files import File

user1=User(name='abc')
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'r')))

You will end up with the image abc.png copied into the upload_to directory specified in the ImageField.

In this case, the user1.pic.save method will also save the user1 instance. The documentation for saving an ImageField can be found here https://docs.djangoproject.com/en/dev/ref/files/file/



回答2:

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

Please Use 'rb' instead of 'r'. If you are using python3.