没有特殊要求的Django项目可以直接采用Auth组件的权限六表, 不需要自定义六个表, 也不需要断开表关系,单可能需要自定义User表
- 简单来说 : 认证确定了你是谁
- 权限确定你能不能访问某个接口
- 限制确定你访问的某个接口的频率
例如 :
- 普通员工只能访问某张表的某条记录
- 管理员或组长能对表和数据进行修改和新增等操作
- 老板能对所有数据拥有所有权限
用户表与角色表通过外键与权限表关联
from django.contrib.auth.models import AbstractUser
# 为auth_user表增加phone字段
class UserInfo(AbstractUser):
phone = models.CharField(max_length=11, unique=True)
class Meta:
verbose_name_plural = ‘用户信息表‘
def __str__(self):
return self.username
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from drf_test import models
# 自定义User表后,admin界面管理User类
class UserAdmin(DjangoUserAdmin):
# 添加用户可操作字段
add_fieldsets = (
(None, {
‘classes‘: (‘wide‘,),
‘fields‘: (‘username‘, ‘password‘, ‘is_staff‘, ‘phone‘, ‘groups‘, ‘user_permissions‘),
}),
)
# 展示用户呈现的字段
list_display = (‘username‘, ‘phone‘, ‘is_staff‘, ‘is_active‘, ‘is_superuser‘)
admin.site.register(models.UserInfo, UserAdmin)
原文:https://www.cnblogs.com/songhaixing/p/14690373.html