我是Django和Python的新手,所以如果这是一个非常简单的问题我很抱歉。我正在为我的儿子小学建立一个申请表。该项目的第一站是为父母提供在线访问,以便与孩子的老师进行交流,反之亦然。我已经创建了下面显示的模型,这些模型将允许数据库中的关系,但我需要能够使教师和父母用户以及基于组角色的有限访问权限。以下是我的型号代码。
基本思想是教师和家长都与学生模型有很多关系。教师可以登录他们的门户并添加属于他们班级的学生。父母将与学生联系,然后学生将提供与教师的联系。现在作为用户,父母和老师可以来回发送通信。
如果这有任何意义,任何帮助或反馈都会很棒。哦,我知道我需要导入auth.models,但我不知道如何或者是否可以连接到老师和家长班。谢谢。
from django.db import models
class Student(models.Model):
student_first = models.CharField(max_length=30)
student_last = models.CharField(max_length=30)
def __str__(self):
return "%s %s" % (self.student_first, self.student_last)
class Teacher(models.Model):
teacher_first = models.CharField(max_length=30)
teacher_last = models.CharField(max_length=30)
teacher_email = models.EmailField()
students = models.ManyToManyField(Student)
def __str__(self):
return "%s %s" % (self.teacher_first, self.teacher_last)
class Parent(models.Model):
parent_first = models.CharField(max_length=30)
parent_last = models.CharField(max_length=30)
parent_email = models.EmailField()
students = models.ManyToManyField(Student)
def __str__(self):
return "%s %s" % (self.parent_first, self.parent_last)
答案 0 :(得分:0)
由于教师和家长都有相同的字段,我会选择一个普通的模型。此外,两个都是用户,因此创建OneToOneField
到AUTH_USER_MODEL
(提供名字和姓氏和电子邮件)。
class Profile(models.Model):
'''
Teacher or Parent
'''
user = models.OneToOneField(settings.AUTH_USER_MODEL,
primary_key=True)
students = models.ManyToManyField(Student)
只需在注册时将其分配给相应的家长/教师组,即可group限制访问权限。