我想設計一個Django在線私立學校的模型。它側重於Students
,Tutors
和Courses
之間的關係。在Django ORM中,「學生 - 課程」模型設計
應該考慮的最重要的因素是Students
可以添加和Tutors
可以創建課程。
我想擴展內置的Djano的「用戶」並擴展其功能。
我設計了這樣一個非常草案模型:
from django.db import models
from django.contrib.auth.models import User , Group
from django.utils.translation import ugettext as _
class Course(models.Model):
name = models.CharField(max_length = 70)
slug = models.SlugField()
created = models.DateTimeField(auto_now = True)
updated = models.DateTimeField(auto_now_add = True)
description = models.TextField()
student = models.ManyToManyField('Student' , null = True, blank = True, related_name = _('Student courses'))
tutor = models.ManyToManyField('Tutor' , null = True, blank = True , related_name = _('Tutor courses'))
def __unicode__(self):
return self.name
class Meta:
verbose_name = ('course')
verbose_name_plural = ('courses')
class Student(models.Model):
user = models.ForeignKey(User , blank = True)
#photo = models.ImageField(_('photo'), upload_to='photos/', blank=True)
class Tutor(models.Model):
user = models.ForeignKey(User , blank = True)
#photo = models.ImageField(_('photo'), upload_to='photos/', blank=True)
首先:它是一個正確的做法?我想要用戶,所以我可以在視圖和模板圖層中使用它。
其次,我如何查詢哪個學生有哪些課程?
謝謝您事先..
謝謝cberner。你是否推薦使用Proxy Model?除了普通的Django User字段外,我還需要添加一些字段給Student和Tutors。 – Soask