I'm trying to build an e-learning platform
I have users (Utilisateur) who can take several courses ,each course have several modules and a module can be in several courses
A user can be a student or teacher or admin, a student is "managed" by a teacher or several and a teacher can also be managed by a teacher (if he is a researcher) ,teachers are managed by admins
I'm not familiar with many_to_many concept, please correct me
This is my django models :
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)
My questions :
1. How to get the scores of a user by module and display them by course, like that :
-Course A
*Module 1
score : 5
*module 2 :
score : 8
...
-Course B
*Module 1:
score 7
....
2. I need to add a many to many relationship between course and user because I wouldnt tell which course affected to which user only by affecting a module to him knowing that the module can belong to several courses, is it correct to add a course = models.ManyToManyField('Course')
in Utilisateur?