2013-04-03 23 views
6

Kişinin kontrol ettiği kitaplık kitaplarını izleyen bir web uygulaması yapıyorum. Aşağıdaki modelleri var: Kişilik Admin'nin "değişim listesi" sayfasındaDJANGO: Nasıl ters bir yabancı anahtar özelliği listelenir?

class Person(models.Model): 
    name = models.CharField(max_length=100) 
    def __unicode__(self): 
     return self.name 

class Book(models.Model): 
    name = models.CharField(max_length=100) 
    person = models.ForeignKey(Person) 
    checkout_date = models.DateTimeField('checkout date') 
    def __unicode__(self): 
     return self.name 

, ben kişinin sahip olduğu hangi kitapları göstermek istiyorum. Bu yapılabilecek bir şey mi? Öyleyse nasıl?

admin.py

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

class PersonAdmin(admin.ModelAdmin): 
    list_display = ('name', 'book__name') 

cevap

13

Django yöneticisi gerçekten esnektir, bunun için yalnızca bir yardımcı yöntem ekleyebilirsiniz.

class PersonAdmin(admin.ModelAdmin): 
    list_display = ('name', 'books') 

    def books(self, obj): 
     return ",".join([k.name for k in obj.book_set.all()]) 
3

örtmelisiniz bir inlinemodel admin

class BookInline(admin.TabularInline): 
    model = book 

class PersonAdmin(admin.ModelAdmin): 
    inlines = [BookInline, ] 

ekleyin.

+0

Bu, 'list_display' için kullanılamaz. Bu, satır içi listeleme içindir. –

İlgili konular