2011-10-06 3 views
6

J'ai des modèles et leur code d'admin ci-dessous. La question est comment puis-je montrer les trois premiers tag d'un livre dans sa propriété list_display? Je peux montrer les étiquettes pendant que le livre est en train d'être édité mais je voudrais que ses 3 balises soient listées dans le panneau d'administration.Django admin list_display utilisation de la propriété

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) 

Pourriez-vous me donner une suggestion? Merci

Répondre

14

Utilisez une méthode personnalisée dans la classe admin.

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

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

fonctionne comme un charme. Merci – brsbilgic

Questions connexes