En dépit de toutes les grandes réponses ci-dessus et en raison de m'être de nouveau à Django, j'étais toujours bloqué. Voici mon explication à partir d'un très débutant point de vue.
models.py
class Book(models.Model):
author = models.ForeignKey(Author)
title = models.CharField(max_length=255)
class Author(models.Model):
name = models.CharField(max_length=255)
admin.py (la mauvaise Voie) - vous pensez qu'il serait de travailler en utilisant le modèle de la "__champ' à la référence, mais il n'a pas
class BookAdmin(admin.ModelAdmin):
model = Book
list_display = ['title', 'author__name', ]
admin.site.register(Book, BookAdmin)
admin.py (Correcte) - c'est la façon dont vous faites référence à un nom de clé étrangère de la façon 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)
Pour plus de renseignements, voir le Django modèle de lien ici