手術台など、多くのジャンゴ

テーブルとテーブルの間にまず、関係

  一対一:張建テーブルが可能に関係なく(OneToOneField)関係フィールドが、そのテーブルクエリ内の比較的高い周波数を構築することをお勧めします 

      【公開(= '公開' まで)= models.ForeignKey】

  多く:(ForeignKeyの)その当事者多対多の分野で構築

  どんなに張建関係テーブルができる場所(のManyToManyField)多くのフィールドが、クエリでそのテーブルを比較的高い周波数を構築することをお勧めします。多くの多くの

  PSは:どのようにテーブルとテーブルの間の関係が何であるかを最終的に判断します

    共感:AはBの複数を有することができます

         BはAの複数を有することができます

     追加や変更を削除します。番号にすることができ、それが対象となり得ます

    ()#のアドオンを追加

    セット()#修飾

    受け取っていない()#のイテラブルを削除し、オブジェクトはクエリセットをすることができます*

    質量参加せずに空のクリア()#

  削除カスケード削除設定します。

    公開= models.ForeignKey(へ= '公開'、on_delete = models.CASCADE)
    = models.ForeignKeyは、(= '公開'、on_delete = models.SET_NULL、ヌル= Trueに)公開   カスケードがTrue = nullを設定してください削除キャンセル#
    
    CASCADE:セットカスケード削除、プレス、対応する書籍の出版を削除削除されます
    SET_NULL:削除をカスケードキャンセル

順方向および逆方向の概念

モデル:

クラスブック(models.Model):
    タイトル = models.CharField(max_lengthを= 32 
    価格 = models.DecimalField(max_digits = 8、decimal_places = 2 
    publist_date = models.DateField(auto_now_add = TRUE)
    に(= models.ForeignKeyを公開= '公開'、to_field = 'ID'、on_delete = models.CASCADE、) 
    公開= models.ForeignKey(=に' 公開'、on_delete = models.SET_NULL、ヌル= 真)
    著者 = models.ManyToManyField(=へ著者"虚拟字段

クラス)(models.Modelを公開:
    名前= models.CharField(max_lengthを= 32 
    のaddr = models.CharField(max_lengthを= 32 
    、電子メール = models.EmailField()  对应就是varchar型类型

クラスの著者(models.Model):
    名前 = models.CharField(max_lengthを= 32 
    、年齢 = models.IntegerField()
    authordetail(=へ= models.OneToOneField ' AuthorDetail ' 

クラスAuthorDetail(models.Model):
    フォン = models.CharField(MAX_LENGTH = 32 
    ADDR = models.CharField(MAX_LENGTH = 32)
コードの表示


フィールド、小文字で記者逆ルックアップテーブルの名前を...によって前方クエリ

1つの
  前方:著者---テーブル内の著者関連分野--->フィールドによってauthordetail
   リバース:authordetail ---著者関連分野表--->著者小文字のテーブル名
     正問い合わせの問い合わせジェイソン・電話番号
     の問い合わせアドレスは次のとおりです。山東省の著者の名前は、ルックアップ逆

多くの
  正:本の中の本---テーブルに関連するフィールドを--- >フィールドによって公開
  リバース:(小文字_set.allでテーブル名によって--->本以上の本---関連分野の書籍のリストを公開)出版社が対応するよう

多対
  フォワード:フィールドの著書---関連する分野での帳テーブル--->著者
  リバース:著者---関連分野帳リスト--->小文字_set.all内のテーブル名の本( )ため、書籍の対応する複数の


東洋プレスを問い合わせは出版の本が多くのフィールドは、ルックアップ逆に公開され
  publish_obj = models.Publish.objects.filter(名=「オリエンタルプレス」)1次回()
  を印刷します(publish_obj.book_set)#のapp01.Book.Noneの
  印刷(publish_obj.book_set.all())

お問い合わせジェイソンのすべての書籍、多くの分野では、逆引き書い
  author_obj = models.Author.objects.filter(名= 「ジェイソン」)。まず()
  印刷(author_obj.book_set)#のapp01.Book.Noneの
  印刷(author_obj.book_set.all())

電話番号の問い合わせは、逆引きの110 1つの著者名フィールドで
  authordetail_obj =モデル.AuthorDetail.objects.filter(電話番号= 110)1次回()
  プリント(authordetail_obj.author.name)

おすすめ

転載: www.cnblogs.com/qingqinxu/p/11260497.html