2012-05-12 9 views
20

¿Es posible agrupar modelos de diferentes aplicaciones en 1 bloque de administración?Agrupe modelos de diferentes aplicaciones/objetos en un bloque Admin

Por ejemplo, mi estructura es

project/ 
    review/ 
    models.py - class Review(models.Model): 
    followers/ 
    models.py - class Followers(models.Model): 
    admin.py 

En followers/admin.py, llamo

admin.site.register(Followers) 
admin.site.register(Review) 

Esta es agruparlos dentro de 1 bloque de administración para los administradores para encontrar las cosas fácilmente.

Lo intenté, pero el modelo Review no se muestra dentro del bloque de administrador Followers y no pude encontrar documentación sobre esto.

Respuesta

36

Django Admin grupos de modelos para el bloque de administración por sus aplicaciones que se define por Model._meta.app_label. De este modo, al registrar Review en followers/admin.py, la aplicación aún llega a review.

así que hacer una proxy model de Review y la puso en la 'opinión' aplicación

class ProxyReview(Review): 
    class Meta: 
     proxy = True  
     # If you're define ProxyReview inside review/models.py, 
     # its app_label is set to 'review' automatically. 
     # Or else comment out following line to specify it explicitly    
     # app_label = 'review' 

     # set following lines to display ProxyReview as Review 
     # verbose_name = Review._meta.verbose_name 
     # verbose_name_plural = Review._meta.verbose_name_plural 


# in admin.py 
admin.site.register(ProxyReview) 

También, se puede poner Followers y Review a misma aplicación o conjunto app_label mismo para ellos.

Personalizar la vista del administrador o utilizar el panel de la tercera parte puede lograr el objetivo también.

Cuestiones relacionadas