Subir imágenes o archivos en Django es facilísimo. Sólo hay que declarar el campo del modelo como ImageField para imágenes o FileField para archivos.
Por ejemplo el modelo para las categorías de noticias en Coátl:
class Category(models.Model):
category = models.CharField(max_length=30, unique=True)
description = models.CharField(max_length=100, unique=True)
image = models.ImageField(upload_to=’img/categories’)
Sube la imagen al PATH ‘img/categories’ siguiendo el PATH MEDIA_ROOT definido en el archivo settings.py. Django automaticamente crea el formulario con el campo upload en la zona admin para agregar la imagen. Además se encarga de borrar los archivos del disco duro cuando se borran los registros en la BD.
Para ir por la imagen en la vista:
< img src “/media/{{ new.category.image }}” alt=”{{ new.category.category }}” title=”{{ new.category.category }}” />
La documentación muestra como usar los diferentes tipos de campos en Django. Acá hay un código chido para hacer thumbnails en Django.
Ah por cierto hay que agregar la línea:
url(r’^$’, ‘coatl.news.views.display’), # HomePage
en urls.py para hacer que /news/display sea el homepage “/” o root del sitio.