这对于非内联很容易.只需覆盖admin.py AdminOptions中的以下内容:
def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'photo': kwargs['widget'] = AdminImageWidget() return db_field.formfield(**kwargs) return super(NewsOptions,self).formfield_for_dbfield(db_field,**kwargs)
我无法弄清楚如何使其适应内联工作.
它的工作方式完全相同.TabularInline和StackedInline类也有一个formfield_for_dbfield方法,你可以在子类中以相同的方式覆盖它.
从Django 1.1开始,formfield_overrides也在工作
formfield_overrides = { models.ImageField: {'widget': AdminImageWidget}, }