小编Kyl*_*397的帖子

Django:实现多用户级别/角色/类型

我使用 Django 已经有一段时间了,但直到现在我才想到这一点。

目前,我有一个包含不同用户级别的项目。通常,在我过去的经验中,我只使用 Django 开发系统,只有两个用户级别,即超级用户和普通/普通用户。所以我的问题是在模型/数据库中呈现这些不同用户级别的有效方法什么?在这里,我将使用学校系统作为示例,并提供我对实施它的一些初步想法。

用户等级:

  1. 管理员(超级用户和员工)
  2. 主要的
  3. 老师
  4. 学生们

方法#1:根据每个用户级别添加新表

from django.contrib.auth.models import AbstractUser
from django.db import models

class User(AbstractUser):
    user = models.CharfieldField(max_length = 10, unique = True)

class Admin(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)

class Pricipal(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)

class Teacher(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)

class Student(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

方法#2:在 User 模型中添加额外的用户类型属性

from django.contrib.auth.models import AbstractUser
from django.db import models

class User(AbstractUser):
    user = models.CharfieldField(max_length = 10, unique = …
Run Code Online (Sandbox Code Playgroud)

python mysql database django web

6
推荐指数
2
解决办法
2756
查看次数

标签 统计

database ×1

django ×1

mysql ×1

python ×1

web ×1