Django 自定义管理页面

django custom admin pages

我希望我的模型在 Django 管理中有多个 list view 端点。

例如,我想查看 all the blogs with more than 5 comments
all the blogs that has been shared

如何在 django admin 中创建多个端点? (基本上一个模型的多个查询集class)

我当然可以使用 https://github.com/jsocol/django-adminplus 之类的东西,但是创建模板需要很多时间...

创建几个proxy models:

class SharedBlog(Blog):

    class Meta:
        proxy = True
        verbose_name = 'shared blog'

并覆盖 ModelAdminget_queryset() 方法:

class SharedBlogAdmin(admin.ModelAdmin):

    def get_queryset(self, request):
        qs = super(SharedBlogAdmin, self).get_queryset(request)
        return qs.filter(shared=True)

admin.site.register(SharedBlog, SharedBlogAdmin)