首页 > 其他分享 >Django匿名用户的属性

Django匿名用户的属性

时间:2023-03-12 18:32:08浏览次数:27  
标签:__ return self perm Django 匿名 obj def 属性

from django.contrib.auth.models import AnonymousUser

class AnonymousUser:
id = None
pk = None
username = ''
is_staff = False
is_active = False
is_superuser = False
_groups = EmptyManager(Group)
_user_permissions = EmptyManager(Permission)

def __str__(self):
return 'AnonymousUser'

def __eq__(self, other):
return isinstance(other, self.__class__)

def __hash__(self):
return 1 # instances always return the same hash value

def __int__(self):
raise TypeError('Cannot cast AnonymousUser to int. Are you trying to use it in place of User?')

def save(self):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

def delete(self):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

def set_password(self, raw_password):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

def check_password(self, raw_password):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

@property
def groups(self):
return self._groups

@property
def user_permissions(self):
return self._user_permissions

def get_user_permissions(self, obj=None):
return _user_get_permissions(self, obj, 'user')

def get_group_permissions(self, obj=None):
return set()

def get_all_permissions(self, obj=None):
return _user_get_permissions(self, obj, 'all')

def has_perm(self, perm, obj=None):
return _user_has_perm(self, perm, obj=obj)

def has_perms(self, perm_list, obj=None):
return all(self.has_perm(perm, obj) for perm in perm_list)

def has_module_perms(self, module):
return _user_has_module_perms(self, module)

@property
def is_anonymous(self):
return True

@property
def is_authenticated(self):
return False

def get_username(self):
return self.username

标签:__,return,self,perm,Django,匿名,obj,def,属性
From: https://blog.51cto.com/u_14892047/6116236

相关文章