2015-07-03 54 views
0

我是Django和Python的新手,所以如果這是一個非常簡單的問題,我很抱歉。我正在爲我的兒子小學建立一份申請表。該項目的第一步是爲父母提供在線訪問,以便與孩子的老師進行交流,反之亦然。我已經創建瞭如下所示的模型,這將允許數據庫中的關係,但我需要能夠使教師和家長用戶以及基於組角色的有限訪問。以下是我的模型代碼。將Python/Django模型對象與用戶關聯

其基本思想是教師和家長都與學生模型有很多關係。教師將能夠登錄他們的門戶並添加屬於他們班級的學生。父母將與學生相連,然後與學生建立聯繫。現在作爲用戶,父母和老師可以來回發送通信。

如果這有什麼意義,任何幫助或反饋將是真棒。哦,我知道我需要導入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

由於老師和家長都有相同的領域,我會去一個普通的模型。另外,兩個用戶都是這樣創建一個OneToOneFieldAUTH_USER_MODEL(它提供姓名和電子郵件地址)。

class Profile(models.Model): 
    ''' 
    Teacher or Parent 
    ''' 
    user = models.OneToOneField(settings.AUTH_USER_MODEL, 
    primary_key=True) 

    students = models.ManyToManyField(Student) 

簡單的註冊過程中他們assing到合適的父/教師組,以便您可以通過group限制訪問。

+1

看起來比擁有兩個單獨的類更清潔。這麼晚纔回復很抱歉。我將實施這種方法並報告結果。謝謝。 –

+0

對不起,延遲響應,但這讓我需要去的地方。我把所有的東西都包裝在瞭解決方案的過程中。謝謝。 –