我正在为我的Django网络应用创建身份验证系统。这是我的模型:
class Student(models.Model):
name = models.CharField(max_length=300)
def __str__(self):
return self.name
class Teacher(models.Model):
name = models.CharField(max_length=300)
total_earnings = models.IntegerField(default="0")
month_earnings = models.IntegerField(default="0")
def __str__(self):
return self.name
class Clase(models.Model):
name = models.CharField(max_length=300)
counter = models.IntegerField(default="6")
language = models.CharField(max_length=10,choices=LANGUAGE_CHOICES, default='english')
students = models.ManyToManyField(Student)
teachers = models.ManyToManyField(Teacher)
def __str__(self):
return self.name
我想给老师和学生不同的权限和功能,但是我不知道如何使用。有任何想法吗?谢谢!
答案 0 :(得分:0)
您可以使用Django的默认身份验证和权限机制。您只需要扩展User
模型。
class Teacher(User):
name = models.CharField(max_length=300)
total_earnings = models.IntegerField(default="0")
month_earnings = models.IntegerField(default="0")
class Student(User):
name = models.CharField(max_length=300)
然后可以创建具有Student
相同权限的Teacher
和User
对象。它还将创建一个User
对象。然后,您可以在访问User
实例时访问权限。
teacher.get_all_permissions() # returns permissions of a teacher
student.get_all_permissions() # returns permissions of a student