django の特定のクラスにクラス配列を保存する必要があるとしましょう。どうすればよいですか? たとえば、Books クラスがあります。クラス Books にスリラー本の配列を格納したいのですが、Django モデルとデータベース テーブルの構文は何ですか?
質問する
1229 次
1 に答える
1
Django チュートリアルを読みましたか? そこにすべてが説明されています。ただし、実際には、使用しているデータベースによって答えが異なる場合があります。ただし、従来の SQL を使用すると仮定すると、ORM の仕組みは次のようになります。
1)メインモデルを定義します:
class Company( models.Model ):
name = models.CharField( max_length = 100 )
# some other fields if necessary
2) メイン モデルを指す対応するサブモデルを定義します。
class Employer( models.Model ):
name = models.CharField( max_length = 100 )
company = models.ForeignKey( Company ) # <----- relation here
# some other fields if necessary
comp
3)タイプのオブジェクトがある場合Company
、次を使用してその会社のすべての雇用主にアクセスできます。
comp.employer_set.all( )
プロパティは、接尾辞と組み合わせたクラスのemployer_set
名前に由来します。このフィールドに独自の名前を定義できます。次のように、クラスの定義を少し変更する必要があります。Employer
_set
Employer
class Employer( models.Model ):
name = models.CharField( max_length = 100 )
# note the change
company = models.ForeignKey( Company, related_name = 'employers' )
これで、次を使用できます。
comp.employers.all( )
これらが基本です。リレーショナル データベースが実際にメイン モデルに参照の配列を作成することは不可能です (または、少なくとも非常に非効率的です)。ただし、MongoDB などの非リレーショナル データベースを使用している場合は、この限りではありません。
于 2012-07-10T07:52:38.213 に答える