Django 匿名用户AnonymousUser

本文介绍了Django中匿名用户AnonymousUser的实现细节,包括其特性:id恒定、username为空、is_authenticated和is_active始终返回False,以及groups、user_permissions属性为空等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码

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 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_group_permissions(self, obj=None):

return set()


def get_all_permissions(self, obj=None):

return _user_get_all_permissions(self, obj=obj)


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

AnonymousUser对象

class models.AnonymousUser

django.contrib.auth.models.AnonymousUser是一个实现django.contrib.auth.models.User接口的类,具有以下差异:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值