首页 > 解决方案 > 如何将自定义 css 类添加到 wagtail 仪表板按钮

问题描述

我们如何将自定义类添加到 wagtail 仪表板按钮,例如“查看实时”、“编辑”按钮以创建内容。当我浏览核心文件时,我注意到管理页面的核心 wagtail 钩子如下所示(我知道我们不应该编辑核心文件)

if page.live and page.url:
    yield PageListingButton(
        _('View live'),
        page.url,
        attrs={'target': "_blank", 'rel': 'noopener noreferrer', 'title': _("View live version of '{title}'").format(title=page.get_admin_display_title())},
        priority=30
    )

如果我添加值'class':'custom-class'attrs则默认类消失并custom-class出现

这样做的正确方法是什么

编辑(进一步调查)

使用鹡鸰钩

我创建了一个新的 wagtail 应用程序来注册钩子,这样我就可以在不更改核心文件的情况下注册按钮,但现在我有两个按钮(重复),但我希望编辑现有按钮的class attrs

from wagtail.core import hooks
from wagtail.admin import widgets as wagtailadmin_widgets
from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook, PageListingButton

@hooks.register('register_page_listing_buttons')
def page_listing_buttons(page, page_perms, is_parent=False):
    if page.live and page.url:
        yield PageListingButton(
            ('View live'),
            page.url,
            attrs={'target': "_blank", 'rel': 'noopener noreferrer', 'title': ("View live version of '{title}'").format(title=page.get_admin_display_title())},
            priority=30
        )

标签: djangowagtail

解决方案


这部分文档应满足您的需求。


推荐阅读