0

django の特定のクラスにクラス配列を保存する必要があるとしましょう。どうすればよいですか? たとえば、Books クラスがあります。クラス Books にスリラー本の配列を格納したいのですが、Django モデルとデータベース テーブルの構文は何ですか?

4

1 に答える 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

comp3)タイプのオブジェクトがある場合Company、次を使用してその会社のすべての雇用主にアクセスできます。

comp.employer_set.all( )

プロパティは、接尾辞と組み合わせたクラスのemployer_set名前に由来します。このフィールドに独自の名前を定義できます。次のように、クラスの定義を少し変更する必要があります。Employer_setEmployer

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 に答える