eラーニングプラットフォームを構築しようとしています
複数のコースを受講できるユーザー(Utilisateur)がいます。各コースには複数のモジュールがあり、モジュールは複数のコースに含めることができます
ユーザーは学生、教師、または管理者になることができ、学生は教師または複数の教師によって「管理」され、教師は教師によって管理されることもできます(研究者の場合)、教師は管理者によって管理されます
many_to_many の概念に慣れていないので、訂正してください
これは私のジャンゴモデルです:
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')
。