Wagtail 6.x.x移除insert_editor_css hook后,如何为编辑页添加原CSS?
在Wagtail 6.x中实现编辑器页面专属CSS加载
Wagtail 6.x移除了insert_editor_css钩子,可改用insert_admin_css钩子结合请求路径判断,实现仅为编辑页面加载原有CSS的需求,具体修改如下:
替换后的代码实现
from wagtail import hooks from django.utils.html import format_html from django.templatetags.static import static from django.conf import settings @hooks.register('insert_admin_css', order=100) def editor_css(request): # 判断当前是否为页面编辑/新增页面 if request.path.startswith('/admin/pages/') and ('/edit/' in request.path or '/add/' in request.path): return format_html( '<link rel="stylesheet" href="{}">', static('domestic-editor.css'), ) return '' @hooks.register('insert_global_admin_css') def global_admin_css(): env_stylesheet = '' if getattr(settings, 'ENVIRONMENT_CSS_THEME_FILE'): env_stylesheet = format_html( '<link rel="stylesheet" href="{}">', static(settings.ENVIRONMENT_CSS_THEME_FILE), ) return ( format_html( '<link rel="stylesheet" href="{}">', static('cms-admin/css/domestic.css'), ) ) + env_stylesheet
关键说明
- 改用
insert_admin_css钩子:该钩子会在所有后台管理页面触发,替代原insert_editor_css的作用范围 - 路径判断逻辑:通过
request.path识别页面编辑/新增场景(匹配/admin/pages/下的/edit/或/add/路径),仅在符合条件时返回编辑器CSS - 加载顺序控制:通过
order=100参数调整CSS加载顺序,避免被其他默认样式覆盖(可根据实际需求调整数值)
内容的提问来源于stack exchange,提问作者DavidU
相关产品推荐
相关产品推荐

