django admin filter_list от manytomany подано

models.py

      class Author(models.Model):
    nickname = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=255)
    authors = models.ManyToManyField(Author)

admin.py

      @admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_filter = (???,)

Как отфильтровать книги конкретного автора через админку.

1 ответ

Вы можете просматривать "сквозные" отношения с двойным подчеркиванием, так что вы можете фильтровать по nickname принадлежащий authors этой книги с:

      @admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_filter = ('authors__nickname',)

или как указано в документации:

(…)

Имена полей в list_filterтакже может охватывать отношения, используя __поиск , (…)

Другие вопросы по тегам