我想用django管理面板实现一个非常简单的特性,但是到目前为止,我还没有找到实现这一点的正确方法:
模型.py
class Author(models.Model):
name = models.CharField()
class Books(models.Model):
title = models.CharField()
author = models.ForeignKey(Author)
管理.py
class AuthorAdmin(admin.ModelAdmin):
pass
admin.site.register(Author, AuthorAdmin)
如何向“作者列表”概述中的每个项目(作者)添加指向显示特定作者的所有书籍的视图的链接?例如:
其中books是指向显示作者所有书籍的网站的超链接。
它并不像你想象的那么简单,可能,但也不是微不足道的,因为没有那么多关于这个特性的文档:)
您需要的是一个自定义列,该列由一个函数生成,该函数为您提供一个指向具有给定筛选器的Django管理员的链接。像这样的事情(从我的头顶,所以没有测试)应该可以做到:
你在找一个ModelAdmin.list_filter。
设置list_filter以激活管理员更改列表页右侧栏中的筛选器。listfilter可以是字段名,其中指定的字段应为BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey或ManyToManyField,例如:
现在您可以使用@Wolph suggestion在Author list_显示中添加链接。此链接指向按作者筛选的图书列表:
可供选择。要保存单击,还可以直接指向书本的更改视图:
免责声明:未经测试,但如果你修复了错别字,它会工作!:)
注意,这些链接也可以在管理中的其他点注入。将其添加到小部件时,可以从“更改视图”转到“更改视图”。
研究如何实现InlineModelAdmin对象。
编辑回复OP评论:
相关问题 更多 >
编程相关推荐