如何像默认页面标题显示一样设置“PageTitleWidget”的样式(当“PageListingViewSet”上未定义列时)?

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

ModelAdmin
迁移到
PageListingViewSet
时,我注意到在定义不带
title
PageListingViewSet
或添加带有
columns
columns
时,页面
PageTitleWidget
列的默认样式有所不同:

默认样式(未定义列)

enter image description here

PageTitleWidget 样式

enter image description here

由于经常出现我们想要为

PageListingViewSet
定制列的情况,美学上的不一致变得越来越明显,并导致令人困惑的用户体验。

如何定义与默认

PageListingViewSet
title
显示具有相同美感的“页面标题”列?

进一步研究

检查

PageTitleColumn
生成的源代码与未定义列的
PageListingViewSet
生成的源代码时,包装页面标题小部件的
class="title"
上似乎缺少
td

https://github.com/wagtail/wagtail/blob/5f158de94a8e16a7e7bea0795d0704c2ba5e2f94/wagtail/admin/ui/tables/pages.py#L7-L10

默认标记(未定义
columns

<td class="title" data-listing-page-title="">
    <div class="title-wrapper">...</div>
    <ul class="actions">...</ul>
</td>

标记来自
PageTitleWidget

<td data-listing-page-title="">
    <div class="title-wrapper">...</div>
    <ul class="actions">...</ul>
</td>
wagtail wagtail-admin
1个回答
0
投票

事实证明,在 classname="title"

s 的 
PageTitleColumn 属性中定义
columns
实例时,不应用
default 
PageListingViewSet
。所以,解决办法如下:

PageTitleColumn(
    "title",
    label="Title",
    sort_key="title",
    # make sure to define the classname="title"
    classname="title",
),
© www.soinside.com 2019 - 2024. All rights reserved.