Ti prego di scusarmi per la mia brutta inglese ;-)Django: aggiungi l'immagine in un ImageField dall'immagine url
immaginare questo modello molto semplice:
class Photo(models.Model):
image = models.ImageField('Label', upload_to='path/')
Vorrei creare una foto da un'immagine URL (cioè, non a mano nel sito admin di Django).
Penso che ho bisogno di fare qualcosa di simile:
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)
Spero che ho ben spiegato il problema, se non me lo dica.
voi :) Grazie
Edit:
Questo può funzionare, ma non so come convertire content
in un file django:
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)
Ciao, grazie per avermi aiutato;). Il problema è (cito il documento): "Si noti che l'argomento del contenuto deve essere un'istanza di File o di una sottoclasse di File." Quindi hai qualche soluzione per creare un'istanza File con i tuoi contenuti? –
Controlla la nuova modifica; questo dovrebbe ora essere un esempio funzionante (anche se non l'ho ancora testato) – pithyless
E il mio modello, dove ho anche altri campi. Come url, ecc, ecc. Se id esegue model.image.save (...). come faccio a salvare gli altri campi? Non possono essere nulli EDIT: woudl sarà qualcosa del genere? >>> car.photo.save ('myphoto.jpg', contenuto, save = False) >>> car.save() – Harry