在" wagtail_hooks.py"我有下面的代码。作为wagtail管理员,我可以看到StudentModelAdmin,但作为一个限制访问管理界面的用户,我无法做到。
我想允许使用wagtail admin访问权限的用户以及下面的特定权限来访问学生模型管理员。我如何创建" CourseRegisterPermission"类?
from wagtail.contrib.modeladmin.options import (ModelAdmin, modeladmin_register)
from wagtail.wagtailcore import hooks
from .models import Participant
@hooks.register('register_permissions')
def view_course_registrations():
return Permission.objects.filter(codename="view_course_registrations")
class CourseRegisterPermission(PermissionHelper):
# how do I allow users with the permission to view course registrations
# to see the 'StudentModelAdmin" below?
class StudentModelAdmin(ModelAdmin):
model = Participant
menu_label = "Student Registrations"
menu_icon = "group"
search_fields = ('name', 'supervisor_name')
list_display = ('name', 'email')
list_filter = ('course',)
permission_helper_class = CourseRegisterPermission
我试图找到一些令人烦恼的PermissionHelper的例子但是找不到任何例子。
任何提示都将不胜感激!
答案 0 :(得分:1)
您可以使用Wagtail源代码中的wagtail.contrib.modeladmin.helpers.PermissionHelper
或wagtail.contrib.modeladmin.helpers.PagePermissionHelper
权限帮助程序类作为示例。请参阅user_can_list
,user_can_create
等方法
但是......你确定需要定义自己的权限助手类吗?在我看来,您可以在Wagtail管理员中创建一个新的(或编辑现有的)组,并为您的Participant
模型提供所需的对象权限。
在我的屏幕截图Programme
上是我使用ModelAdmin管理的模型。