from django.contrib import admin from django.contrib.contenttypes.admin import GenericStackedInline from .models import Photo class PhotoInline(GenericStackedInline): """Inline admin for photos that can be added to any model.""" model = Photo extra = 1 fields = ('image', 'caption', 'alt_text', 'is_primary') classes = ('collapse',) @admin.register(Photo) class PhotoAdmin(admin.ModelAdmin): list_display = ('caption', 'content_type', 'object_id', 'is_primary', 'created_at') list_filter = ('content_type', 'created_at', 'is_primary', 'is_approved') search_fields = ('caption', 'alt_text') ordering = ('content_type', 'object_id', '-is_primary') readonly_fields = ('created_at', 'updated_at') fieldsets = ( ('Image', { 'fields': ('image', 'caption', 'alt_text', 'is_primary', 'is_approved') }), ('Metadata', { 'fields': ('content_type', 'object_id', 'created_at', 'updated_at'), 'classes': ('collapse',) }), )