我使用 Django 已经有一段时间了,但直到现在我才想到这一点。
目前,我有一个包含不同用户级别的项目。通常,在我过去的经验中,我只使用 Django 开发系统,只有两个用户级别,即超级用户和普通/普通用户。所以我的问题是在模型/数据库中呈现这些不同用户级别的有效方法什么?在这里,我将使用学校系统作为示例,并提供我对实施它的一些初步想法。
用户等级:
方法#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)