Vamos a ver cómo guardar un archivo a partir de su URL. Este método nos permitirá descargar y guardar cualquier archivo de Internet y nos servirá tanto para campos ImageField como FileField.
Como ejemplo vamos a ver un modelo con un campo imagen como el siguiente:
from django.db import models
class Foto(models.Model):
imagen = models.ImageField(upload_to='archivos/')
Para guardar cualquier imagen de una URL descargaremos el archivo utilizando urllib y lo guardaremos de la siguiente manera:
import urllib
from django.core.files import File
from models import Foto
url = 'http://www.sitio.com/imagen.jpg'
content = urllib.urlretrieve(url)
nombre = url.split('/')[-1]
f = Foto()
f.imagen.save(nombre, File(open(content[0])), save=True)
Publicado por Antonio Melé el Sábado 14 de Agosto de 2010
Compártelo:
| Categorías:
fields,
trucos
El campo de formulario ModelChoiceField sirve para permitir la selección de un elemento entre los objetos resultantes de una QuerySet. La QuerySet inicial puede ...
Hoy me he topado con un artículo sobre un error muy común al utilizar ImageField ó FileField. Al usar cualquiera de estos dos tipos ...
En múltiples ocasiones nos gustaría extender el modelo User para que incluyera otros campos y funciones. La manera "oficial" de hacer esto (la mostrada ...
Muchas veces deseamos acceder a los settings de nuestro proyecto desde alguna de nuestras plantillas. Lo ideal es crear un context processor que nos ...
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas