当前,编辑页面时的所有者列表包括所有用户。如果此列表有成千上万的用户,则会阻止页面加载。
是否可以编辑查询集,使其仅包括职员用户或具有一定权限的用户?
答案 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()