2010-03-14 12 views
24

He definido un modelo que contiene un enlace y una imagen. ¿Hay alguna manera de mostrar la imagen en la lista de elementos del modelo? Mi modelo se ve así:Django: Mostrar imagen en la interfaz de administrador

class Article(models.Model): 
    url = models.CharField(max_length = 200, unique = True) 
    title = models.CharField(max_length = 500) 
    img = models.CharField(max_length = 100) # Contains path to image 

    def __unicode__(self): 
     return u"%s" %title 

¿Hay alguna manera de mostrar la imagen junto con el título?

Respuesta

57

Puede crear un método de instancia modelo con otro nombre, permitir etiquetas HTML para su resultado y agregar este método como un campo de lista. He aquí un ejemplo:

primero Añadir un nuevo método de devolver el HTML para la inclusión imagen:

class Article(models.Model): 
    ... 
    def admin_image(self): 
     return '<img src="%s"/>' % self.img 
    admin_image.allow_tags = True 

A continuación, agregue este método a la lista:

class ArticleAdmin(admin.ModelAdmin):  
    ... 
    list_display = ('url', 'title', 'admin_image') 
+0

Tengo un problema. ¿Podría echar un vistazo pls TypeError en/admin/ objeto 'MediaDefiningClass' no es iterable Solicitud Método: \t GET URL de solicitud: \t http://127.0.0.1:8000/admin/ Tipo de excepción: \t TypeError Excepción Valor: \t objeto 'MediaDefiningClass' no se fija iterable –

+1

en realidad la anterior, ahora tenemos esto: 'admin_img' no es una exigible o un atributo de –

+0

.... bien, por favor, ignora .. . fue un error tipográfico –

11
def image_tag(self, obj): 
    return u'<img src="%s" />' % obj.image 

image_tag.short_description = 'Image' 
image_tag.allow_tags = True 

y en su complemento: admin.py

readonly_fields = ('image_tag',) 
3

También puede agregar la imagen directamente en el administrador

class ArticleAdmin(admin.ModelAdmin): 

    def admin_image(self, obj):      
     return '<img src="%s"/>' % obj.img 
    admin_image.allow_tags = True 

    list_display = ('url', 'title', 'admin_image') 
+0

Mejor solución para la arquitectura. – SolessChong

Cuestiones relacionadas