<p>你在找一个<a href="https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter" rel="noreferrer">ModelAdmin.list_filter</a>。</p>
<p>设置list_filter以激活管理员更改列表页右侧栏中的筛选器。listfilter可以是字段名,其中指定的字段应为BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey或ManyToManyField,例如:</p>
<pre><code> # Add a list filter author to BookAdmin.
# Now you can filter books by author.
class BookAdmin(ModelAdmin):
list_filter = ('author', )
</code></pre>
<p>现在您可以使用@Wolph suggestion在Author list_显示中添加链接。此链接指向按作者筛选的图书列表:</p>
<pre><code># 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
</code></pre>
<p>可供选择。要保存单击,还可以直接指向书本的更改视图:</p>
<pre><code>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]
</code></pre>
<p>免责声明:未经测试,但如果你修复了错别字,它会工作!:)</p>
<p>注意,这些链接也可以在管理中的其他点注入。将其添加到小部件时,可以从“更改视图”转到“更改视图”。</p>