##確立するために、3番目のテーブルを作成して自分自身を、多くの関係
#テーブルテーブルは1対多の関係かもしれ教師と生徒は、あなたがする場合、テーブルの構築手動で関連する第3のテーブルを作成することができます クラス:学生(models.Model) 名 = models.CharField(= 32 MAX_LENGTH、ヌル= 真) 年齢を models.CharField =(= 32 MAX_LENGTH、ヌル= TRUE) クラス教師(models.Model): 名前 = models.CharField(= 32 MAX_LENGTH、ヌル= TRUE) 性別 = models.CharField(= 32 MAX_LENGTH、ヌル= TRUE) #第3のテーブルの確立、会合前に2つのテーブル のクラスTeacherToStudent(models.Model): STU = models.ForeignKey(' 学生'、ヌル= TRUE) TEAC = models.ForeignKey(' 先生'、ヌル= 真) クラスのメタ- : #アメリカユニークインデックス unique_together = [ (' STU '、' TEAC ' )、 ]
## CRUD操作
#モデルによって直接増やし。.Objects.createクラス名を加え models.Student.objects.createを(名= " XXX "、年齢= 12 ) models.Teacher.objects.create(名 = " OOO "、性別= " Mを" ) models.TeacherToStudent.objects.create(stu_id = 1、teac_id = 1 ) #オブジェクトを.deleteを識別()、及び対応関係削除穿刺 models.Teacher.objects.filter(ID = 4 ).Deleteを( ) models.TeacherToStudent.objects.filterは(teac_id = 4 ).Delete() #の異なるテーブルとして変更は別々に動作 models.Teacher.objects.filter(ID = 3).Update(名= " XOXO " ) #の私は、学生が同時に教師の数を教えられるために求めていないか確認してください、でチャートには3つの方法があります 。#1: RES = models.Student.objects.filter(上記ID = 2).ALL() #は、対象と識別するために、学生 のための行にRES: プリント(row.name) R = row.teachertostudent_set.all() # (逆引き)テーブルは、IDと2行のすべての学生の3分の1を表現 するための I にR: #1 i.teacの位(Nチェック)は、教師の対応テーブルことを示す プリント(i.teac.name) #は学生ID 2は、すべての教師に対応する検出 #:2 RES = models.TeacherToStudent.objects.filter(stu__name = " CaOを" ).ALL( ) #に対応するすべての行の生徒の名前をチェックしてください(魔法の二重下線)のCaO 以下のための行でRES: 印刷(row.stu.name、row.teac.name) #の生徒と教師の間のfind対応 #3: RES = models.TeacherToStudent.objects.filter(stu__name = " 李").values(" teac__name " ) #辞書が含まれ、クエリセットリストをチェックアウト 印刷)(RESを