问题描述
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 = (???,)
如何通过管理面板过滤特定作者的书籍。
解决方法
您可以通过双下划线查看关系,因此您可以过滤该书的 nickname
的 author
:
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_filter = ('authors__nickname',)
或按照the documentation of list_filter
中的规定:
(…)
list_filter
中的字段名称还可以使用 __
查找,(…)