まず、1つのマッピング
図1を参照すると、一何の
テーブルAとBのレコードは、テーブル内のレコードが関連していることができる
:等、一対一
2、構文
二つのクラスに関連付けられたクラスの任意の増加可能:
属性models.OneToOneField =(エントリ)
。3、照会
クラス妻(models.Model):
...
著者= models.OneToOneField(著)
。1、nはクエリに:妻の著者を探していることにより、
妻= Wife.objects.get(上記ID = 1)
著者= wife.author
図2は、逆引き:著者によって妻を探して
著者属性が暗黙的に追加で妻はデフォルトでDjangoのOneToOneFieldです
著者= Author.objects.get(ID = 14)
の妻= author.wife
第二に、多くのマッピング
1、多くのもので
、データテーブルには、表Bのデータを複数に関連付けることができる
表AにBデータとテーブルに関連付けられているデータのみ
以下のような:プレス(出版社)、書籍(書籍)
製品タイプ(GoodsType)、商品(グッズ)
2、データベースに反映
多く反映するように、外側キー(ForeignKeyの)を介して
、「多くの」テーブル内で参照「」主キーを増加外部キー(ForeignKeyの)を
3、構文
外部キー(ForeignKeyの)
"多くの"エンティティ追加:
属性= models.ForeignKey(エントリー)
4、お問い合わせ
ブック(およびそれ以上)と出版社(A)
クラスブック(models.Model):
...
パブリッシャー= models.ForeignKey(出版社)
図1に示すように、前方にクエリ-予約パブリッシャによってクエリ
ブック= Book.objects.get(上記ID = 1)
出版社book.publisher =
クエリブック出版社を介して-図2は、逆引き
Djangoは、関連付けられたオブジェクト1に_set性を増加するクエリデータを複数
出版社と書籍の関係と合わせて:Publisherでbook_setプロパティエンティティを追加します
出版社= Publisher.objects.get(ID = 1)
図書= publisher.book_set.all()
三、多对多映射
1、什么是多对多
A表中的一条记录可以与B表中的任意多条记录匹配
B表中的一条记录可以与A表中的任意多条记录匹配
如:作者与书籍
2、在数据库中的体现
必须创建第三张表,关联涉及到的两张表数据
3、语法
允许在任何一个实体中增加操作:
entry = models.ManyToManyField(Entry)
4、查询
class Author(models.Model):
...
book = models.ManyToManyField(Book)
1、正向查询-通过Author查询所有的Book
author = Author.objects.get(id=1)
books = author.book.all()
2、反向查询-通过Book查询所有的Author
Django中 会在Book 实体中增加一个隐式属性 author_set
book = Book.objects.get(id=1)
authors = book.author_set.all()