У меня была похожая проблема с немного другим решением. Я хотел скрыть превью изображений (поля только для чтения) из формы «new» (представление «add»), но отображать их при извлечении нового объекта:
class PhotoAdmin(admin.ModelAdmin):
readonly_fields = ('admin_image', 'admin_thumb', )
search_fields = ('filename', 'user', 'supplier', 'customer')
list_display= ('admin_thumb','filename', 'user', 'supplier', 'customer')
#fields = ('admin_thumb', 'admin_image', 'original_image', 'user', 'supplier', 'customer')
def get_fieldsets(self, request, obj=None):
fieldset_existing = (
(None, {
'classes': ('wide',),
'fields': ('admin_thumb', 'admin_image',
'original_image', 'user', 'supplier', 'customer', 'priority',)}
),
)
fieldset_new = (
(None, {
'classes': ('wide',),
'fields': ('original_image', 'user', 'supplier', 'customer', 'priority',)}
),
)
if obj: # Editing
return fieldset_existing
return fieldset_new
Строка #fields
показывает исходные поля. Я признаю, что это решение не очень «СУХОЕ», но оно ясное и простое.