问题描述
我使用文件 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?希望得到您的解答和帮助。谢谢。
这是我网站的管理页面。添加工厂时,新的工厂名称应出现在主菜单中。
解决方法
将所有代码移动到 hide_images_menu_item
钩子函数中。这将在每个页面请求上运行 - 不在函数中而仅在 wagtail_hooks.py 主体中的代码将仅在启动时运行一次。