2016-12-16 9 views
0

クラスの管理に役立つWebアプリケーションを構築しています。だから私は、クラスモデルと学生モデルを持っていると私は、各クラスが複数の生徒を持つようにしたいと私は、各学生が複数のクラスに入学することができるようにしたい:2つのモデル間のDjango多対多の関係

class Class(models.Model): 

name = models.CharField(max_length=30) 
enrolled_students = models.ManyToManyField('Student', blank=True) 

... 

class Student(models.Model): 
enrolled_classes = models.ManyToManyField(Class, blank=True) 

これはうまく動作しますが、それは面倒です。私はクラスを作成し、生徒を作成し、登録したクラスを追加します。そして、私はクラスに戻って学生を登録しなければなりません。このプロセスを自動化することで、Djangoはどの生徒がどのクラスに属しているか、どのクラスにどの生徒が登録されているかを自動的に追跡します。

私には分かりにくいものがあると思います。

答えて

0

これを行う必要は全くありません。多対多を含むすべてのリレーションシップフィールドは、自動的に後方アクセサーを追加します。リレーションの一方の側にフィールドを定義するだけです。たとえば、Classに定義すると、登録されている生徒のクラスをmy_student.class_set.all()として参照できます。

+0

ニート!私は今これを試してみるつもりです。 – SirYancy

+0

[ドキュメンテーション](https://docs.djangoproject.com/en/1.10/ref/models/relations/)には、さまざまな関係フィールドを使用して関連オブジェクトにアクセスする方法が記載されています。 –