如何在Wagtail中的SnippetChooserPanel中自定义查询集?

如何在Wagtail中的SnippetChooserPanel中自定义查询集?,wagtail,Wagtail,假设我有一个这样的模型: 班级三明治(models.Model): """ 像食物一样的东西水平堆放。 """ 所有者=型号。外键(用户) 面板=[ SnippetChooserPanel(“所有者”), ] 在Wagtail管理员中,我希望排除某些所有者,例如,不能信任史蒂夫吃三明治。如何定制所使用的queryset 关于如何使用PageChooserPanel、DocumentChooserPanel和ImageChooserPanel执行此操作,没有介绍,但没有介绍SnippetChoo

假设我有一个这样的模型:

班级三明治(models.Model):
"""
像食物一样的东西水平堆放。
"""
所有者=型号。外键(用户)
面板=[
SnippetChooserPanel(“所有者”),
]
在Wagtail管理员中,我希望排除某些
所有者
,例如,不能信任史蒂夫吃三明治。如何定制所使用的queryset

关于如何使用
PageChooserPanel
DocumentChooserPanel
ImageChooserPanel
执行此操作,没有介绍,但没有介绍
SnippetChooserPanel

编辑

@dan swains的回答非常有效,即使是定制的
用户
模型

@register\u代码段
类用户(抽象用户):
"""
我的自定义“用户”模型…
"""
类管理器(models.Manager):
def get_queryset(自我):
"""
任何不叫“史蒂夫”的人。
"""
return super().get_queryset().exclude(名字)
@寄存器代码段
类别三明治者(用户):
"""
只有不是“史蒂夫”的人才被认为是吃三明治的人。
"""
类元:
proxy=True
objects=NoSteveManager()

如果您使用的是Django 2.2/Wagtail 2.5,您可以尝试在模型上创建并定义,以返回所需的查询集。我在Wagtail中使用过代理模型,不过Wagtail需要做更多的工作才能使代理模型始终正常工作。

@Matt只是想知道您是否尝试过此解决方案,如果尝试过,它是否有效。是的,它非常有效,非常干净。非常感谢。