我的models.py看起来像这样:
class Author(models.Model):
name = models.CharField()
class DraftBooks(models.Model):
title = models.CharField()
author = models.ForeignKey(Author)
status_choices = ((1,Draft),(2,Published))
status = models.SmallIntegerField(choices=status_choices)
class PubBooks(DraftBooks):
class meta:
proxy = True
verbose name = 'Published Books'
我正在使用代理模型,因为我想要一个不同的更改列表视图,用于已经发布的草稿状态和书籍。要实现这一点,我的admin.py看起来像这样:
class AuthorAdmin(admin.ModelAdmin):
pass
admin.site.register(Author, AuthorAdmin)
class DraftBooksAdmin(admin.ModelAdmin):
list_display = ('title','author','status')
def queryset(self):
return DraftBooks.objects.filter(status='1')
admin.site.register(DraftBooks, DraftBooksAdmin)
class PubBooksAdmin(admin.ModelAdmin):
list_display = ('title','author','status')
def queryset(self):
return PubBooks.objects.filter(status='2')
admin.site.register(PubBooks, PubBooksAdmin)
这个设置工作得很好。在我的管理员中,现在我有3个更改列表视图,一个显示所有作者的列表,一个显示处于草稿状态的书,最后一个显示书籍列表处于公布状态。
我现在需要在作者列表概述中为每个项目(作者)添加一个超链接,该链接指向显示特定作者所有书籍的视图。例如:
其中books是指向显示特定作者所有书籍的网站的超链接。 现在我对如何执行此操作完全无能为力。Django Xadmin有一个插件只提供此功能。This Stackoverflow问题也提供了这个问题的答案。但问题是它们不能在代理中工作我有自定义过滤器的模型。当我试图获取作者的书籍清单时,我只得到处于草稿状态的书籍。我理想地想要所有书籍,草稿和作者出版。如何做我实现了这个目标吗?