Django: resim url bir ImageField Resim Ekle
lütfen çirkin benim İngilizce için özür dilerim ;-)
Bu çok basit bir model düşünün :
class Photo(models.Model):
image = models.ImageField('Label', upload_to='path/')
Resim bir URL (django admin site eliyle değil yani) bir Fotoğraf oluşturmak istiyorum.
Böyle bir şey yapmam gerektiğini düşünüyorum
from myapp.models import Photo
import urllib
img_url = 'http://www.site.com/image.jpg'
img = urllib.urlopen(img_url)
# Here I need to retrieve the image (as the same way that if I put it in an input from admin site)
photo = Photo.objects.create(image=image)
Peki sorunu açıkladı, değilse söyle olmam umarım.
Teşekkür ederim :)
Düzenleme :
Bu işe yarayabilir ama django bir Dosya için content
dönüştürmek için nasıl bilmiyorum.
from urlparse import urlparse
import urllib2
from django.core.files import File
photo = Photo()
img_url = 'http://i.ytimg.com/vi/GPpN5YUNDeI/default.jpg'
name = urlparse(img_url).path.split('/')[-1]
content = urllib2.urlopen(img_url).read()
# problem: content must be an instance of File
photo.image.save(name, content, save=True)
CEVAP
Ben sadece bu aynı sorun için http://www.djangosnippets.org/snippets/1890/ yarattı. Kodu pithyless' urllib2 kullanması dışında.yukarıda cevap benzer urlopen çünkü urllib.urlretrieve kolay istediğini yerine 404/500 bir sayfanın içeriğini almak için varsayılan olarak herhangi bir hata işleme yapmaz. Geri arama fonksiyonu & özel URLOpener sınıfı oluşturabilirsiniz ama daha kolay buldum:
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))
Program aracılığıyla resim ImageField ...
HTML / input type="düğme"?Re...
Css ile metin solda Resim Ekle...
Ekle SQL Server 2005 Görüntü Alan, yal...
İphone UİİmageView hareketli Gif Resim...