我試圖建立一個電子學習平臺如何查詢多對多的關係?
我有用戶(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)
我的問題:
。如何通過模塊來獲取用戶的分數和過程顯示出來,這樣的:
-Course A
*Module 1
score : 5
*module 2 :
score : 8
...
-Course B
*Module 1:
score 7
....
。我需要在課程和用戶之間添加多對多的關係,因爲我不知道哪個課程受哪個用戶影響,因爲他知道模塊可以屬於幾個課程,在Utilisateur中添加course = models.ManyToManyField('Course')
是否正確?