【发布时间】:2013-08-28 20:44:33
【问题描述】:
我正在尝试构建一个电子学习平台
我有用户(Utilisateur),他们可以参加几门课程,每门课程都有几个模块,一个模块可以包含在多个课程中
用户可以是学生或教师或管理员,学生由一名或多名教师“管理”,一名教师也可以由一名教师管理(如果他是研究人员),教师由管理员管理
我对many_to_many概念不熟悉,请指正
这是我的 django 模型:
class Utilisateur(models.Model):
user = models.OneToOneField(User)
role = models.CharField(choices=ROLES,blank=False,max_length=50)
managed_by = models.ManyToManyField('self',
related_name='managers',
symmetrical=False,
blank=True)
course = models.ManyToManyField('Course') #can I do it? (question 2)
module = models.ManyToManyField('Module', through='UtilisateurModule')
class Course(models.Model):
titre = models.CharField(blank=False,max_length=100)
class Module(models.Model):
titre = models.CharField(blank=False,max_length=100)
course = models.ManyToManyField(Course, through='ModuleCourse')
class ModuleCourse (models.Model):
module = models.ForeignKey(Module)
course = models.ForeignKey(Course)
order = models.IntegerField(blank=False)
class UtilisateurModule (models.Model):
user = models.ForeignKey(Utilisateur)
module = models.ForeignKey(Module)
score = models.IntegerField(blank=False)
我的问题:
1。如何按模块获取用户的分数并按课程显示,就像这样:
-Course A
*Module 1
score : 5
*module 2 :
score : 8
...
-Course B
*Module 1:
score 7
....
2。我需要在课程和用户之间添加多对多关系,因为我不会告诉哪个课程影响到哪个用户仅通过影响一个模块给他知道该模块可以属于几个课程,添加course = models.ManyToManyField('Course') 是否正确实用者?
【问题讨论】:
标签: django django-models many-to-many