[英]Permissions to different roles in Django
I am creating an authentication system for my Django web-app.我正在为我的 Django 网络应用程序创建一个身份验证系统。 This is my model:这是我的模型:
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
I want to give different permissions and features to teachers and students, but I have no clue on how.我想为教师和学生提供不同的权限和功能,但我不知道如何。 Any ideas?有任何想法吗? Thanks!谢谢!
You can use the default authentication and permission mechanism of Django.您可以使用 Django 的默认身份验证和权限机制。 You just need to extend User
model.您只需要扩展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)
You can then create a Student
and Teacher
object with appropriate permissions as the same as User
.然后,您可以像User
一样创建具有适当权限的Student
和Teacher
对象。 It will also create an User
object.它还将创建一个User
对象。 Then, you can access permission as you access on User
instance.然后,您可以在访问User
实例时访问权限。
teacher.get_all_permissions() # returns permissions of a teacher
student.get_all_permissions() # returns permissions of a student
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.