2012-02-17 6 views
5

Estoy usando una aplicación de terceros en mi aplicación web django. Pero quiero personalizar la vista de administrador para uno de los modelos en la aplicación de terceros. La personalización es más que cambiar la plantilla change_list.html decir que tendrá que añadir código para hablar con un servicio web externo, etc.¿Dónde puedo modificar el código de vista de administrador para una aplicación de terceros?

Sin embargo, no quiero modificar la aplicación tercera parte. En cambio, quiero anularlo. ¿Cómo anulo el ModelAdmin para obtener un modelo que proviene de una aplicación de un tercero?

Respuesta

17

Esto debería empezar:

from django.contrib import admin 
from thirdpartyapp.models import ThirdPartyModel 
from thirdpartyapp.admin import ThirdPartyAdmin 

class CustomThirdPartyAdmin(ThirdPartyAdmin): 
    pass 


admin.site.unregister(ThirdPartyModel) 
admin.site.register(ThirdPartyModel, CustomThirdPartyAdmin) 

utilizo esto a menudo para personalizar el UserAdmin as shown in this answer.

+1

Debe anular el registro del modelo, no de su administrador. – MechanTOurS

+1

Tienes razón. Lo arreglé. –

+1

¿A dónde debería ir este código? ¿En una nueva carpeta dentro de la carpeta principal del proyecto con el nombre 'thirdpartyapp'? – kahlo

Cuestiones relacionadas