Wagtail 为 MyPage 设置额外权限

Wagtail set additional permissions for MyPage

这里是 Wagtail 新手。

我正在尝试为特定模型添加一些额外的权限,但 "wagtail admin" 中没有显示任何内容。我可以用 "django" 的方式做到这一点,但我的印象是 wagtail 可以处理这种类型的权限。我在 wagtail 文档中找不到任何提示。

我有一个名为 "MyPage" 的新模型:

class MyPage(Page):
    [...]

    class Meta:
        permissions = (
        ('view_restricted_document', 'can view restricted documents'),
    )

如何在 wagtail 管理员的群组部分提供此权限?

事实证明,有一个鹡鸰钩可以做到这一点:"register_permsissions"。

如果您的应用程序中不存在名为 "wagtail_hooks.py" 的文件,请创建一个文件并输入以下内容:

from wagtail.wagtailcore import hooks
from django.contrib.auth.models import Permission

@hooks.register('register_permissions')
def view_restricted_page():
    return Permission.objects.filter(codename="view_restricted_document")

就是这样。 现在,如果我浏览组部分,在 "Other Permissions" 下,我可以查看附加选项 "can view restricted document"。