2

私は Django プロットフォームが初めてです。基本的に投稿メソッドを受け入れるプログラムを作成しようとしています。受信データの内容はstorename, bookname, bookserial. その部分はすでに実装されており、うまく機能しています。などの内容を投稿する場合storename=John's shopping center, bookname=Love is beatiful, bookserial=123。テーブルを作成し、それらをテーブルに保存します。しかし、問題は、各店舗に 1 つのテーブルだけを作成したくないということです。なぜなら、私は複数持つことができstorename、各ストアには独自のテーブルが必要だからです。storenameオンザフライで投稿すると、チェックstorenameして、テーブルが既に作成されているかどうかを確認し、そのテーブルを挿入する必要がありますbooknamebookserialそうでない場合は、新しいテーブルを作成し、受信データを新しいテーブルに挿入する必要があります。新しいテーブル名はstorenameだから、私が言ったように、その場で新しいテーブルを作成する方法を学ぶ必要があるだけです。それを行う方法を教えてください。コメントやアイデアをいただければ幸いです....

わかりやすくするための例として、

Table-1=John's shopping center
    bookname=Love is beatiful
    bookserial=123

  Table-2= John's shopping center-2
     bookname=Time is important
     bookserial=456

したがって、各ショッピング センターのモデルは同じですが、各ソッピング センターはショッピング センターの名前を持つ別のテーブルです。

4

1 に答える 1

1

従来の意味では、djangoでその場で具体的なテーブルを動的に作成することはできません。ORMがすべての関係を適切に管理できるように、モデルはアプリケーションの起動の一部として登録する必要があります。他のモデルへの制約または逆参照を設定する新しいモデルを定義した場合にどうなるかを検討してください。クラスであるこれらの他のモデルは、すでにセットアップされており、メモリ内にあります。彼らはもはやメタクラスのステップを経て新しい関係を結ぶことはできません。あなたは簡単に物事を壊すことができます。

オプションは、さまざまなエンティティを動的に記述できるいくつかのテーブルを含むソリューション、またはスキーマを気にせずいつでも何でも保存できるnosqlバックエンドを使用するソリューションに制限されます。

詳細については、この質問と回答を参照してください:Django動的モデルフィールド

その場で具体的なテーブルを作成する唯一の方法は、それに応じてdjangoアプリを完全に再起動させることです。

于 2012-08-14T05:44:39.263 に答える