3

我有一个大约有 4000 个页面的网站,它在其中大约 400 个页面上使用细粒度权限。对于访问 /admin/ 页面的某些用户,页面会在一秒钟左右加载。对于其他人,页面可能需要大约 5 分钟才能加载。

对代码进行分析和调试似乎表明关注的领域是wagtail\core\models.py explorable_pages()函数,特别是

page_permissions = Page.objects.filter(group_permissions__in=self.permissions)

线。至少对于我的数据,这似乎返回了超过 2000 个结果,每个结果重复了 6 或 7 次(返回每个权限类型的结果?)。只有大约 400 个不同的结果。

添加一个distinct()改进的问题

page_permissions = Page.objects.filter(group_permissions__in=self.permissions).distinct()

将数字降低到 400 左右。我的页面加载时间现在约为 90 秒 - 不理想但更好。

以上是鹡鸰的真正问题还是我错过/不理解某些东西?

我可以做些什么来加快页面加载速度吗?是否以典型 wagtail 网站所期望的方式设置网站权限?

(请原谅我的无知,我可能使用了错误的术语 - 我是 Python/Django/Wagtail 的 Java 程序员新手)

4

0 回答 0