2011-03-29 62 views
9

¿Existe alguna manera fácil de incluir capacidades de carga de archivos a la interfaz de administración en Django? Vi esto question pero no estoy muy versado en Javascript.¿Subir imágenes usando Django Admin?

¿Hay alguna magia que pueda agregar a los archivos models.py o admin.py que me permitan hacer esto fácilmente con el sistema CMS integrado de Django?

Antecedentes:

Estoy tratando de crear una base de datos de las celebridades que incluyen sus bio, fechas de nacimiento y quiero incluir una foto de perfil para ir con ella. Esto es parte de un mini proyecto en el que estoy trabajando para mejorar mi Django/Python.

Gracias.

Respuesta

22

Perdóname si estoy equivocado, pero parece que no es necesario nada más que el widget de administración predeterminado para una ImageField.

Esto satisface:

  1. Cargar imágenes usando Django administración
  2. Incluyendo una foto de perfil (singular) para ir con una celebridad.

Además, el enlace que señala es bastante antiguo. La administración de django se envía con javascript habilitado en líneas largas arbitrariamente en estos días (por lo menos durante un año, creo), así que si quieres varias imágenes, simplemente configura un segundo modelo que tenga una clave externa para tu modelo de perfil. Configure an admin inline y tendrá la funcionalidad lista para usar.

class Celebrity(models.Model): 
    name = models.CharField() 

class Image(models.Model): 
    celebrity = models.ForeignKey(Celebrity) 
    image = models.ImageField() 

class InlineImage(admin.TabularInline): 
    model = Image 


class CelebrityAdmin(admin.ModelAdmin): 
    inlines = [InlineImage] 

admin.site.register(Celebrity, CelebrityAdmin) 
+1

como supongo que Nai espera una vista previa en miniatura automática de las imágenes subidas poco más ajustes puedan realizarse: http://stackoverflow.com/questions/1385094/django-admin-and-showing-thumbnail-images – arie

+0

Supongo que es posible. La publicación que enlaza y su idioma se trata de subir, así que no pasó por mi mente. –