テーブル-多くの方法を作成するためのDjangoのORM三つの方法

多くの-な方法を作成するには、3つの方法

1.自動(推奨*)

  利点:あなたは手動で第三のテーブルを作成する必要はありません

  不十分:3番目のテーブルが固定であることを意味し、フィールドの拡張を行うことはできません手動で作成したよりも、第三のテーブルとして、

クラスブック(models.Model):
    タイトル = models.CharField(max_lengthを= 32 
    価格 = models.DecimalField(max_digits = 8、decimal_places = 2 
    著者(=へ= models.ManyToManyField ' 著者' 

クラスの著者(models.Model ):
    名前 = models.CharField(MAX_LENGTH = 32)

2.ピュアマニュアル(理解します)

自分の第三のテーブルを作成します。

長所:任意のサード拡張フィールドすることができます

不十分:ORMクエリは便利ではありません

クラスブック(models.Model):
    タイトル = models.CharField(max_lengthを= 32 
    価格 = models.DecimalField(max_digits = 8、decimal_places = 2 


クラスの著者(models.Model):
    名前 = models.CharField(max_lengthを= 32 
                
                
クラスBook2Author(models.Model):
    ブック = models.ForeignKey(=に' ブック' 
    の著者(=へ= models.ForeignKey ' 著者' 
    CREATE_TIME = models.DateField(auto_now_add =真)

3.半自動(推奨*******)

長所:自動と2つの純粋なマニュアルの利点を組み合わせました

クラスブック(models.Model):
   タイトル = models.CharField(MAX_LENGTH = 32 
   。価格 = models.DecimalField(。= max_digits 8、= 2 decimal_places 
   著者 = models.ManyToManyField(=に' 著者'、=通じ' Book2Authorは'、 = through_fields(ブック著者))
冊までは、多くの関係のDjangoのORMと作者の表はにBook2Authorによって記録され伝える中古本フィールドBook2AuthorテーブルORMレコードとの関係をDjangoの教えthrough_fields著者フィールドが記録する
「「」
で多くの分野に多くを
追加します。
SETを
削除
明確な不支持
""」
                
                
クラスの著者(models.Model):
    名前 = models.CharField(max_lengthを= 32 #1 = 'Book2Author'を介し= '帳'への図書= models.ManyToManyField(、、through_fields =( '著者'、 'ブック'))


クラスBook2Author(models.Model):
    ブック = models.ForeignKey(=に' ブック' 
    の著者 = models.ForeignKey(=に' 著者' 
    CREATE_TIME = models.DateField(auto_now_add =真)

 

おすすめ

転載: www.cnblogs.com/s686zhou/p/11586206.html