Skip to content

image display mixins

utils/image_display_mixins.py

from django.utils.safestring import mark_safe

class ImageDisplayMixin:
    """
    Mixin class to display image preview in the Django admin.
    """
    @staticmethod
    def display_image(obj):
        if obj.image:
            return mark_safe('<img src="{}" width="100" height="100" />'.format(obj.image.url))
        else:
            return "No Image"

    display_image.short_description = 'Image Preview'

Usage

admin.py

from django.contrib import admin
from utils.image_display_mixins import ImageDisplayMixin
from .models import Gallery

@admin.register(Gallery)
class GalleryAdmin(ImageDisplayMixin, admin.ModelAdmin):
    list_display = ('title', 'display_image')