一个Wagtail模型的多个ModelAdmins

问题描述 投票:0回答:1

假设我有一个模特:

class BlogPost(Page):

date = models.DateField("Post date")
intro = models.CharField(max_length=250)
body = StreamField([
    ('paragraph', blocks.RichTextBlock()),
    ('image', ImageChooserBlock()),
    ('gallery', CarouselBlock()),
    ('video', EmbedBlock()),
])
...

而且我想在侧栏中创建与此模型相关的多个页面。我尝试过这样的方法:

    class BlogPostAdmin(ModelAdmin):
        model = BlogPost
        ...

    class DraftPostAdmin(ModelAdmin):
        model = BlogPost
        #query for drafts
        ...

    class ScheduledPostAdmin(ModelAdmin):
        model = BlogPost
        #query for scheduled posts
        ...

    class BlogGroup(ModelAdminGroup):
        menu_label = 'Blog'
        items = (BookAdmin, AuthorAdmin, GenreAdmin)
        ...

    modeladmin_register(BlogGroup)

但是问题是所有页面都显示与第一个ModelAdmin的查询集匹配的模型实例。在Wagtail中实现多个菜单项以管理一个模型的不同方面的最佳方法是什么?

python django wagtail
1个回答
0
投票

使用proxy model,然后为每个模型定义一个适当的manager。我在基于Wagtail的现有应用程序中进行此工作,在该应用程序中,我为成员资格应用程序中的各种成员资格状态定义了代理模型。在我的情况下,基本模型是Member,但是我有CurrentMemberNonCurrentMember等。

© www.soinside.com 2019 - 2024. All rights reserved.