Django使用内置的User、Permission和Group模型来管理用户认证的相关数据。
User模型用于管理用户数据,模型包含的字段如下。
username:用户名,必填字段。最长150个字符。可以包含字母、数字、_、@、+、.和-等字符。
first_name:名字,可选字段。最长30个字符。
last_name:姓氏,可选字段。最长150个字符。
email:电子邮件地址,可选字段。
password:存储密码的哈希值,可选字段。密码可包含任意字符。
groups:多对多关系,可选字段。关联用户组。
user_permissions:多对多关系,可选字段。关联用户权限。
is_staff:是否允许访问Admin站点,可选字段。为True时表示账户可以访问Admin站点。
is_active:是否为活动账户,可选字段。为True时表示用户账户为活动账户,非活动账户被禁止访问。
is_superuser:是否为超级用户,可选字段。为True时表示用户具有所有权限,否则为普通用户。
last_login:用户上次登录的日期时间,可选字段。
date_joined:创建账户的日期时间,可选字段。
在数据库中,User模型对应的数据表为auth_user
Permission模型用于管理权限数据,模型包含的字段如下。
name:权限名称,必填字段。最长255个字符。
content_type:引用数据表django_content_type的id字段,必填字段。数据表django_content_type保存应用包含的模型记录。
codename:用于编程的权限名称,必填字段。最长100个字符。
在数据库中,Permission模型对应的数据表为auth_permission
Group模型用于管理组数据,模型包含的字段如下。
name:组名称,必填字段。最长80个字符。
permissions:多对多关系,关联权限。
在数据库中,Group模型对应的数据表为auth_group
User模型与Permission模型之间是多对多关系,该关系在数据库中对应的数据表为auth_user_user_permissions
User模型与Group模型之间是多对多关系,该关系在数据库中对应的数据表为auth_user_groups
Group模型与Permission模型之间是多对多关系,该关系在数据库中对应的数据表为auth_group_permissions。