2017-03-08 2 views
1

私は生徒と教師の相互作用を助けるためのウェブアプリを作ろうとしています。私はDjangoで学生と教師の関係をどのように表現しますか?

しかし、私はDjangoで関係のモデルを構造化する方法を知る必要があります。

  1. 先生は、彼または彼女の下に多くの学生(ユーザー)を持つことができます。
  2. 生徒は1人の教師を持つことができます。

つまり、教師はできるだけ多くの生徒を持つことを意図していますが、各生徒は1人の教師しか持てません。

これはDjangoでどのように表現しますか?そして、この関係を管理する最良の方法は何ですか?後者の質問については、次のようなクラスを作成することを考えています:

class Relationship(models.Model): 
    ##student and lecturer models shall inherit the User class; hence, the 


    student = models.ForeignKey(User, related_name = 'lecturer_set') 
    lecturer = models.ForeignKey(User, related_name = 'student_set') 

    class Meta: 
     unique_together = ('student', 'lecturer') 

PS:上記のクラスが間違っている可能性があります。私がRelationshipクラスに実装する必要があることを説明しようとしています。

+1

[Django:1つのモデルに2つの外部キーがある可能性のある複製]このケースではこれは正しいアプローチです(http://stackoverflow.com/questions/41715273/django-one-model-has-two-foreign-keys - これは、この場合の正しいアプローチです。) – e4c5

答えて

1

これはDjangoで単純なForeignKeyで表される標準的な1対多の関係です。

class Student(models.Model): 
    teacher = models.ForeignKey(Teacher) 

リレーションシップモデルはまったく必要ありません。

関連する問題