如何在 Wagtail 管理员中正确使用钩子?

How correctly use a hook in a Wagtail admin?

我正在尝试将我自己的 css 插入 wagtail 管理页面。

考虑答案 https://groups.google.com/forum/#!topic/wagtail/DYeTygB_F-8 我使用 hook insert_editor_css。我在我的应用程序文件夹中创建了 wagtail_hooks.py 并添加了以下代码:

from django.utils.html import format_html
from django.contrib.staticfiles.templatetags.staticfiles import static

from wagtail.wagtailcore import hooks


@hooks.register('insert_editor_css')
def editor_css():
    return format_html('<link rel="stylesheet" href="{}">', static('css/admin.css'))

Towards docs 它应该被执行但没有插入 css 文件,甚至没有尝试这样做(错误或异常)。我猜(也许我错了)wagtail_hooks.py 没有被处理。

有人可以给我一些提示吗?提前致谢。

您需要:

  1. 确保您的应用已添加到 INSTALLED_APPS 设置。
  2. 确保您的项目导入 wagtail_hooks.py。您可以将 print 放在模块级别的某个位置,或者在挂钩函数定义中添加一个断点。
  3. 确保使用正确的钩子:

    insert_editor_css and insert_editor_js 用于向页面编辑器界面添加额外的 css 或 js only。因此,您的 css/admin.css 应该出现在页面创建或编辑屏幕上。

    如果您想向所有管理页面添加额外的 css 或 js,您需要使用 insert_global_admin_css or insert_global_admin_js.