2011-10-06 14 views
6

Tengo modelos y su código de administrador a continuación. La pregunta es ¿cómo puedo mostrar los primeros tres tag de un libro en su propiedad list_display? Puedo mostrar las etiquetas mientras el libro está editando, pero me gustaría tener sus 3 etiquetas mientras el libro aparece en el panel de administración.Django admin list_display property usage

models.py

class Book(models.Model): 
    name = models.CharField(max_length=1000) 

    def __unicode__(self): 
     return self.name 

class BookTag(models.Model): 
    name = models.CharField(max_length=1000) 
    book = models.ForeignKey(Book,null=False,blank=False)  
    def __unicode__(self): 
     return self.name 

admin.py

class BookTagInline(admin.TabularInline): 
    model = JobTitleTag 

class BookAdmin(admin.ModelAdmin): 
    list_display = ('name') 
    inlines = [ BookTagInline, ] 

admin.site.register(Book,BookAdmin) 

Podría darme alguna sugerencia? Gracias

Respuesta

14

Utilice un método personalizado en la clase de administrador.

class BookAdmin(admin.ModelAdmin): 
    list_display = ('name', 'three_tags') 

    def three_tags(self, obj): 
     return obj.booktag_set.all()[:3] 
+0

funciona como un encanto. Gracias – brsbilgic