To add image in an ImageField from image URL with Python Django, we can use the NamedTemporaryFile
class.
For instance, we write
from django.core.files import File
from django.core.files.temp import NamedTemporaryFile
img_temp = NamedTemporaryFile(delete=True)
img_temp.write(urllib2.urlopen(url).read())
img_temp.flush()
im.file.save(img_filename, File(img_temp))
to get the create a NamedTemporaryFile
object.
Then we call write
with the image result we get from urllib2.urlopen(url).read()
where url
is the image URL.
And then we call flush
to put the file into img_temp
.
Then we save img_temp
as the file with
im.file.save(img_filename, File(img_temp))