私のモデルでは、学生用のテーブル(学生やインストラクター - 私はauth.Userに接続されているUserProfileテーブルを持っています)、コース用のテーブル、およびenrollmentというテーブルがあります。どのコース。次のように私のmodels.pyがされています。Djangoでは、(throughテーブルを使用して)以下の多対多クエリを実行するにはどうすればよいですか?
class Course(models.Model):
name = models.CharField(max_length=40)
instructor = models.ForeignKey(UserProfile, related_name="Instructor")
students = models.ManyToManyField(UserProfile, through='Enrollment')
class UserProfile(models.Model):
user = models.OneToOneField(User, primary_key=True)
role = models.CharField(max_length=4, choices=ROLE_CHOICES) # 'stud' or 'inst'
class Enrollment(models.Model):
course = models.ForeignKey(Course)
student = models.ForeignKey(UserProfile)
を与えられたユーザーのために、私は私がこれをどのように操作を行うことができ、S /彼はに登録されたすべてのコースを見つけたいですか?
また、Djangoでどのようにクエリを実行するかについての詳細な説明はどこにありますか?複雑な例が徐々に増えています。
これを試しましたが、次のエラーが表示されます。 'キーワード' user_username 'をフィールドに解決できません。選択肢は次のとおりです:インストラクター、コース、登録、メモ、役割、学生の答え、ユーザー 'これらのオプションのいくつかは、上記の質問から除外したモデルの詳細に特有のものです。 – Deonomo
@ Alasdairのように、ユーザーとユーザー名の間にアンダースコアがありません。ありがとう。 – sgallen
ありがとうございます。明らかに、私はこの主題に関する文書を深く勉強する必要があります。 – Deonomo