bitte entschuldigen Sie mich für meine hässliche Englisch ;-)Django: add Bild in einem Imagefield von Bild-URL
dieses sehr einfaches Modell Stellen Sie sich vor:
class Photo(models.Model):
image = models.ImageField('Label', upload_to='path/')
Ich möchte ein Foto von einem Bild erstellen URL (dh nicht von Hand in der Django Admin-Site).
Ich denke, dass ich so etwas wie dies tun müssen:
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)
Ich hoffe, dass ich auch das Problem erklärt, wenn nicht mir sagen. Danke
:)
Edit:
Diese arbeiten kann, aber ich weiß nicht, wie content
zu einer django Datei zu konvertieren:
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)
Hallo, danke, dass du mir geholfen hast;). Das Problem ist (ich zitiere das Dokument): "Beachten Sie, dass das Inhaltsargument eine Instanz von File oder einer Unterklasse von File sein muss." Haben Sie eine Lösung, um eine Dateiinstanz mit Ihren Inhalten zu erstellen? –
Überprüfen Sie die neue Bearbeitung; das sollte jetzt ein funktionierendes Beispiel sein (obwohl ich es nicht getestet habe) – pithyless
Was ist mit meinem Modell, wo ich auch andere Felder habe. Wie URL, etc, etc. Wenn id tun model.image.save (...). Wie speichere ich die anderen Felder? Sie können nicht null sein EDIT: Woudl es so etwas wie das sein? >>> car.photo.save ('myphoto.jpg', Inhalt, save = Falsch) >>> car.save() – Harry