Вопрос по admin, django, reverse-lookup, foreign-keys, python – DJANGO: Как list_display изменить атрибут внешнего ключа?

6

я создаю веб-приложение, которое отслеживает, какие библиотечные книги проверяет человек. У меня есть следующие модели:

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

На админа "список изменений" страница для человека, я хотел бы показать, какие книги у этого человека. Это то, что можно сделать? Если так, то как?

admin.py

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

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

Ваш Ответ

2   ответа
3

Добавитьвстроенная модель администратора

class BookInline(admin.TabularInline):
    model = book

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

Это должно покрыть это.

Я думаю, что это можетне может быть использован дляlist_display», Это для встроенного списка. Burak Özdemir
15

вы можете просто добавить вспомогательный метод для него.

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

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

Похожие вопросы