ModelAdmin.list_filterを探しています。
list_filter を設定して、管理者の変更リスト ページの右側のサイドバーでフィルターを有効にします。listfilter はフィールド名にすることができます。指定されたフィールドは、BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey、または ManyToManyField のいずれかである必要があります。次に例を示します。
# Add a list filter author to BookAdmin.
# Now you can filter books by author.
class BookAdmin(ModelAdmin):
list_filter = ('author', )
@Wolph の提案を使用して、Author list_display にリンクを追加できるようになりました。このリンクは、著者別にフィルタリングされた本のリストを指しています。
# Add hyperlinks to AuthorAdmin.
# Now you can jump to the book list filtered by autor.
class AuthorAdmin(admin.ModelAdmin):
def authors(self):
return '<a href="/admin/appname/book/?author__id__exact=%d">%s</a>' % (self.author_id, self.author)
authors.allow_tags = True
別。クリックを保存するには、本の変更ビューを直接ポイントすることもできます。
class Books(models.Model):
title = models.CharField()
author = models.ForeignKey(Author)
def get_admin_url(self):
return "/admin/appname/books/%d/" %self.id
class BookAdmin(admin.ModelAdmin):
def authors(self):
html = ""
for obj in Books.objects.filter(author__id_exact=self.id):
html += '<p><a href="%s">%s</a></p>' %(obj.get_admin_url(), obj.title)
return html
authors.allow_tags = True
list_display = ['title', authors]
免責事項: テストされていませんが、タイプミスを修正すれば動作します! :)
これらのリンクは、管理画面の他のポイントにも挿入できることに注意してください。ウィジェットに追加すると、変更ビューから変更ビューに移動できます。