This is my progress so far :

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 parcours = 
models.ManyToManyField('Parcours') in Utilisateur?
Help me please

Thanks

Le lundi 26 août 2013 12:06:24 UTC+1, slim a écrit :
>
> 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 [email protected].
To post to this group, send email to [email protected].
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