如何在 wagtail 管理中动态重新加载 watail_hooks.py?

问题描述

我使用文件 wagtail_hooks.py 在 wagtail admin 中重建主菜单。当我更新数据库时,主菜单会根据数据库中的新内容而变化。 wagtail_hooks.py 文件的部分内容如下:

// GET: Packages/Create
public IActionResult Create()
{
    return View();
}

// POST: Packages/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Package package)
{
    if (ModelState.IsValid)
    {
        _context.Add(package);
        await _context.SaveChangesAsync();
        return RedirectToAction(nameof(Index));
    }
    return View(package);
}

如何在数据库更改时自动重新加载文件 wagtail_hooks.py?希望得到您的解答和帮助。谢谢。

这是我网站的管理页面添加工厂时,新的工厂名称应出现在主菜单中。

admin page

解决方法

将所有代码移动到 hide_images_menu_item 钩子函数中。这将在每个页面请求上运行 - 不在函数中而仅在 wagtail_hooks.py 主体中的代码将仅在启动时运行一次。