一つは、多くの、多区別:1:サブテーブルは、データのテーブルから選択され、親、1以下のうち選択した親テーブル、子テーブルが親テーブルを選択しなくてもよい対応します多くのデータの一部を選択されている:母からのデータテーブルを選択するための1子テーブルを、このデータテーブルの母親は、他のサブ多くのテーブルで選択することができたデータをまとめたものです。例えば、より多くの子どもたちがあります、およびさまざまな色が、それぞれの子は、さまざまな色を楽しむことができ、一つの色はもっと子供のようにすることができ、より多くの選択肢を持つことができる双方向のためのものです。サブテーブルを含むテーブルのリレーションシップフィールドは、関連するテーブルは、親テーブルと呼ばれる呼ばれます。OneToOneField:1人の関係、関係フィールドには、いずれかに定義することができます。フォワード・クエリは、次の2つの形式で単語テーブルの女性のテーブルからクエリされています。
クラスの人(models.Model):
isMarryed = models.BooleanField(デフォルト=真、verbose_name = '婚否')
教育= models.CharField(max_lengthを= 10、verbose_name = '学历')
クラスidCard(models.Model):
countNum = models.IntegerField(デフォルト= '000000'、verbose_name = '编号')
名前= models.CharField(max_lengthを= 20、verbose_name = '姓名')
性別= models.BooleanField(デフォルト=真、verbose_name = '性别')
真のヌル=が設定されている場合にのみ#、on_delete = models.SET_NULLが成功するために設定されています
人= models.OneToOneField(人、on_delete = models.SET_NULL、ヌル=真)
親、子テーブルのオブジェクト名小文字アルファベットテーブルエントリフィールド名、idCard.objects.get(ID = 1).person.education、マスターからテーブルクエリ@:@サブテーブルのクエリから親テーブルクエリサブテーブルによって、しかし、フォーム自体が直接親表オブジェクトフィールドから取得され、書き込まれるアルファベット.objects.get(サブサブテーブル小文字フィールド__ =「XXX」)。アルファベットフィールド名、person.objects.get(idCard__id = 1).education;すなわち、親テーブルクエリサブテーブルからクエリを逆二つの形式がある:マスターテーブルからクエリ@:小文字のサブテーブル、person.objects.get(IDでターゲットサブテーブルの親テーブル名フィールド名= ..サブテーブルのクエリから@、照会表、親、子テーブルによるが、フォーム自体は、子テーブルからオブジェクトフィールドに直接アクセスされ、子テーブルの.objects.get(1-親、子テーブルのフィールド__; 1).idcard.nameテーブルのフィールド= 'XXX')のサブテーブルのフィールド、idCard.objects.get(person__education = 'ジュニア').nameの。
女性の小文字の名前の子テーブルオブジェクト。模範。アルファベットのフィールド名
クラスの人(models.Model):
isMarryed = models.BooleanField(デフォルト=真、verbose_name = '婚否')
教育= models.CharField(max_lengthを= 10、verbose_name = '学历')
クラスidCard(models.Model):
countNum = models.IntegerField(デフォルト= '000000'、verbose_name = '编号')
名前= models.CharField(max_lengthを= 20、verbose_name = '姓名')
性別= models.BooleanField(デフォルト=真、verbose_name = '性别')
真のヌル=が設定されている場合にのみ#、on_delete = models.SET_NULLが成功するために設定されています
人= models.OneToOneField(人、on_delete = models.SET_NULL、ヌル=真)
#フォワード問い合わせ
デフ問い合わせ(リクエスト):
IDS = idCard.objects.filter(ID = 1)1次回()
情報= ids.person.education
ids.person.education = '保育園'
ids.person.save()
HttpResponseを返す(詳細)
#逆引き参照
デフQuery1を(要求):
人= person.objects.get(ID = 1)
ファック= persons.idcard.name
(性交)はHttpResponseを返します
@。子テーブル)のアルファベットが多いので、同じことが.gerずつ(ようにすることはできません、別のクエリとの1対1の関係、外部キーテーブルのクエリの親、子テーブルで3つの方法の検索を逆にします。サブテーブルフィールド取得し、親表オブジェクト。サブテーブル名小文字.ALL()FCLASS = className.objects.filter(ID = 1)1次回()。student_set.all()が得られる[A] @fclass =学生クエリセット.objects.filter(inClass = className.objects.get(ID = 1))--->シンプルな言葉遣い:FCLASS = student.objects.filter(inClass__teacher = 'あおい')[フィルタ(子テーブルの親の外部キーフィールド__フィールド=「フィルタ条件」)] @サブテーブルによって、サブテーブル名.objects.filter(子テーブルの外部キーフィールド= _親テーブルの主キーマスターテーブルの主キーオブジェクト)で始まり、FCLASS = student.objects.filter(inClass__id = 1)
#多くの正のお問い合わせ
デフQUERY2(リクエスト):
「「」
teacherName = student.objects.get(stuName = '罗程')
teacherName = teacherName.inClass.teacher
「「」
teacherName = className.objects.get(student__stuName = '锤子').teacher
HttpResponseを返す(teacherName)
#逆引き参照
デフquery3(リクエスト):
「「」
一般的な言葉遣い
FCLASS = className.objects.filter(ID = 1))(1次回
FCLASS = fclass.student_set.all()
私FCLASS中のため:
印刷(i.stuName)
HttpResponseを返す(FCLASS)
「「」
#fclass = student.objects.filter(inClass = 1)
#fclass = student.objects.filter(inClass = className.objects.get(ID = 1))
#fclass = student.objects.filter(inClass__teacher = '苍井空')
FCLASS = student.objects.filter(inClass__id = 1)
私FCLASS中のため:
印刷(i.stuName)
( '1111')はHttpResponseを返します
クラスの色(models.Model):
色= models.CharField(MAX_LENGTH = 10)#蓝色
デフ__str __(自己):
リターンself.colors
クラスの子供(models.Model):
名前= models.CharField(max_lengthを= 10)#姓名
賛成= models.ManyToManyField(「色」)#多くの色のテーブル
[<色:赤>、<色:イエロー>、<色:ブルー>]リターン - 親テーブルが小さいような色を見つけるために#-manyサブテーブルのクエリ
問い合わせ、親テーブルの多くの異なる形態を持つ#子テーブル、多くは、クエリテーブル「A」の母であるため、多くの多くは、「多くの」女性のテーブルのクエリです
#1書かれました:
書かれたchild_obj = models.Child.objects.get(名前= "ボブ")#:サブテーブルターゲットサブ多くのフィールドのフィルタ条件テーブル(すべての()/フィルタ())..
印刷(child_obj.favor.all())
#2は、親テーブルの逆から始めて、書かれました:
プリント(models.Colors.objects.filter(child__name =「ボブ」))#1 .filter親表オブジェクト(サブサブテーブル名小文字__表フィールド名=「フィルタ」)
#-many親テーブル、クエリ、子テーブルには、見つける何黄色のような人 - リターン:[<子供:暁明>、<子ども:Yadar>]
#女性のサブテーブル、クエリテーブルの多くの形態と完全に一致し、クエリセットので発見され、および多対多では、「多くの」サブテーブルのクエリです
#1書かれました:
color_obj = models.Colors.objects.get(色= "黄")
印刷(color_obj.child_set.all())
#2書かれました:
印刷(models.Child.objects.filter(賛成= models.Colors.objects.get(色= "黄")))
#2書かれたシンプルな書き込み(推奨):
印刷(models.Child.objects.filter(favor__colors =「黄色」))書かれた#:フィルタ(子テーブルの外部キーフィールドのマスターテーブルのフィールド= __「フィルタ条件」)
#3書かれました:
COLOR_ID = models.Colors.objects.get(色=「黄色」)親テーブルID赤色により取得位.ID
印刷というクエリセットを得#filter(models.Child.objects.filter(賛成= COLOR_ID))、書き込み:フィルタ(子テーブルの外部キーフィールドマスタテーブルの主キー=オブジェクト)、ここでは、多くのわずかに異なるで、サブシート代わりに、外部キーフィールドマスタテーブルの主キーのキーフィールド_