Может ли «list_display» в Django ModelAdmin отображать атрибуты полей ForeignKey?

Несмотря на все замечательные django-models ответы выше и из-за того, что modeladmin я новичок в Django, я все modeladmin еще застрял. Вот мое объяснение python-shell с точки зрения новичка.

models.py

class Author(models.Model):
    name = models.CharField(max_length=255)

class Book(models.Model):
    author = models.ForeignKey(Author)
    title = models.CharField(max_length=255)

admin.py (Неверный способ) - вы django-models думаете, что это сработает, если django-models использовать для ссылки 'model__field', но pythonista это не так

class BookAdmin(admin.ModelAdmin):
    model = Book
    list_display = ['title', 'author__name', ]

admin.site.register(Book, BookAdmin)

admin.py (правильный способ) - так вы ссылаетесь pythonic на имя внешнего ключа способом pythonista Django

class BookAdmin(admin.ModelAdmin):
    model = Book
    list_display = ['title', 'get_name', ]

    def get_name(self, obj):
        return obj.author.name
    get_name.admin_order_field  = 'author'  #Allows column order sorting
    get_name.short_description = 'Author Name'  #Renames column head

    #Filtering on side - for some reason, this works
    #list_filter = ['title', 'author__name']

admin.site.register(Book, BookAdmin)

Для получения дополнительной django-fields информации см. ссылку на python-interpreter модель Django here

python

django

django-models

django-admin

modeladmin

2022-11-06T10:30:26+00:00
Вопросы с похожей тематикой, как у вопроса:

Может ли «list_display» в Django ModelAdmin отображать атрибуты полей ForeignKey?