限制所有者下拉列表中的用户列表

时间:2019-01-28 20:45:29

标签: wagtail

当前,编辑页面时的所有者列表包括所有用户。如果此列表有成千上万的用户,则会阻止页面加载。

是否可以编辑查询集,使其仅包括职员用户或具有一定权限的用户?

1 个答案:

答案 0 :(得分:0)

我通过创建一个模型管理器来解决此问题,该模型管理器默认情况下仅显示is_staff=True个用户。然后,我在使用自定义用户模型的其他所有地方都使用了raw_objects管理器,该管理器未进行过滤。

class BaseMyUserManager(BaseUserManager):
    """ This one doesn't filter any results. 
    """
    pass

class MyUserManager(BaseMyUserManager):
    def get_queryset(self):
        return super(MyUserManager, self).get_queryset().filter(
            is_staff=True)

然后在models.py

class MyUser(AbstractBaseUser, PermissionsMixin):
    # ... custom fields for the User model.

    objects = MyUserManager()
    raw_objects = BaseMyUserManager()