example documentacion decimalfield django django-models

documentacion - django models select field



Django: muestra la imagen en la interfaz de administración (7)

(Estoy usando Django 1.5) Además de seguir los pasos en la respuesta aceptada, TAMBIÉN tuve que marcar la etiqueta de la imagen como "segura"

Para hacerlo, ajuste el valor de retorno con el método mark_safe del paquete django.utils.safestring.

Ejemplo de código: https://stackoverflow.com/a/14075441/1063031

django docs: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#filters-and-auto-escaping

Definí 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í:

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?


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. Aquí hay un ejemplo:

Primero agregue un nuevo método devolviendo el HTML para la inclusión de la 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'')



también puedes 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'')



ACTUALIZACIÓN django 2.0.6

Estaba resolviendo este problema en el último django 2.0.6 . Quería lograr una imagen en miniatura y algunos detalles más en la vista de lista en django-admin.

La imagen a continuación es mi vista de lista de administrador predeterminada.

Este es mi models.py:

from django.db import models from django.utils.safestring import mark_safe # Create your models here. class Product(models.Model): title = models.CharField(max_length=120) description = models.TextField() price = models.DecimalField(decimal_places = 2, max_digits = 20, default = 00.00) image = models.ImageField(upload_to=change_image_name, null=True, blank=True) def image_tag(self): if self.image: return mark_safe(''<img src="%s" style="width: 45px; height:45px;" />'' % self.image.url) else: return ''No Image Found'' image_tag.short_description = ''Image'' def __str__(self): return self.title

Tenga en cuenta que tenía que usar mark_safe () en la cadena de imágenes, de lo contrario obtendrá el código html escapado en lugar de thubnail en django-admin

Finalmente esta es mi admin.py

from django.contrib import admin from .models import Product # Register your models here. class ProductAdmin(admin.ModelAdmin): list_display = (''title'', ''description'', ''price'', ''image_tag'') admin.site.register(Product, ProductAdmin)

Aquí también tenemos que registrar la clase ProductAdmin , no lo sabía y no funcionó.

Este es el resultado:


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

y en tu admin.py agrega:

readonly_fields = (''image_tag'',)