我想过滤user manager self.get\u queryset()方法,使客户端应用程序上的用户在搜索或查看其他帐户时看不到管理员和职员用户。我遇到的问题是,如果我完全覆盖get\u queryset,我就无法使用身份验证系统登录。我当前的设置是:
class AccountManager(BaseUserManager):
def get_public_queryset(self):
return self.get_queryset().filter(active=True, verified=True, admin=False, staff=False)
如果我在管理器中定义了各种排序方法(因为我可以简单地调用该方法),那么使用这种设计可以很好地工作,但是似乎应该有更好的方法来实现这一点。有什么想法吗
我认为附加方法是一个很好的解决方案,但如果您坚持使用get\u queryset方法,则可以重写该方法并保留基本功能。我会这样做:
正如我在问题文本中看到的,您试图调用self.get\queryset(),这将是递归调用(而不是超类实现调用),这将最终导致最大递归深度超出错误
希望有帮助
相关问题 更多 >
编程相关推荐