python - template - ¿Cómo agrego un widget de administración en línea personalizado en Django?
personalizar admin django (3)
Funciona exactamente de la misma manera. Las clases TabularInline y StackedInline también tienen un método formfield_for_dbfield, y lo reemplaza de la misma manera en su subclase.
Esto es fácil para no en línea. Simplemente anule lo siguiente en sus 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)
No puedo resolver cómo adaptar esto para trabajar en línea.
Desde Django 1.1, formfield_overrides también está funcionando
formfield_overrides = {
models.ImageField: {''widget'': AdminImageWidget},
}
Editar: No importa. Esto fue solo un estúpido error de mi parte.
¿Podría proporcionar un pequeño fragmento de este trabajo en línea? Cuando pruebo el código a continuación, estoy obteniendo un keyerror extraño.
class PictureInline(admin.StackedInline):
model = Picture_Gallery
extra = 3
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == ''name'':
kwargs[''widget''] = MyWidget()
return super(PictureInline,self).formfield_for_dbfield(db_field,**kwargs)