我在 Wagtail 5 中有一个
SnippetViewSet
实际上是一个布尔值。
该字段使用注释添加到查询集中:
class PartnerViewSet(SnippetViewSet):
model = Partner
list_display = [
Column("is_current_partner", label=_("Current partner"), accessor="is_current_partner")
]
def get_queryset(self, request):
return (
Partner.objects.all()
# To check whether the partner is a current partner or not
.annotate(
is_current_partner=Exists(
EditionPartnership.objects.filter(
edition__is_current=True,
partner_id=OuterRef("pk"),
)
)
)
)
但是在 Wagtail admin 中,这显示为“True”,如果为 False,则显示为空值。理想情况下,这将是一个复选框或类似于 Django Admin 的东西。
开箱即用吗?
查看 Column 类的源代码,您可以创建 Column 的子类,它有自己的
render_cell_html
以将此布尔值显示为复选框。但是,如果您在列表视图中选中或取消选中该框,除非您还自定义它来执行某些操作,否则这种显示可能会令人困惑。