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

this is my conception :

<https://lh5.googleusercontent.com/-0IKqEtcoluA/Uhs2f2Mqh9I/AAAAAAAAACg/chYFCfSIIeM/s1600/elearning_model.png>

I'm not familiar with many_to_many and through 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', 
through='UtilisateurRelationship', symmetrical=False, blank=True)
        
            
class UtilisateurRelationship(models.Model):
    managed = models.ForeignKey(Utilisateur)
    manager = models.ForeignKey(Utilisateur)
    
    
               
class Course(models.Model):
    titre  = models.CharField(blank=False,max_length=100)
    
class ModuleCourse (models.Model):
    module = models.ForeignKey(Module)
    course = models.ForeignKey(Course)
    order  = models.IntegerField(blank=False)   
        
class Module(models.Model):
    titre     = models.CharField(blank=False,max_length=100)
    belong_to = models.ManyToManyField(Course, through='ModuleCourse')
    
class UtilisateurModule (models.Model):
    user   = models.ForeignKey(Utilisateur)
    module = models.ForeignKey(Module)
    score  = models.IntegerField(blank=False)
    
  

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to