2016-11-04 5 views
0

django-cartonアプリケーションを使用してカートを作成しようとしています。私は2つのモデルを持っています:ホールと料理人。 add()メソッドを呼び出すときに、これらのHallまたはCatererオブジェクトをカートに追加したいと思います。このAPIを使用しているときは、次のようにsettings.pyにモデルを登録する必要があります。あるテーブルのDjangoの挿入または更新が別のテーブルに反映される必要があります

CART_PRODUCT_MODEL = 'marriage_halls.models.Hall' 

私は一度に1つのモデルしか登録できません。だから私はカートにCatererオブジェクトを追加することはできません。この問題を解決するために、3つの列を含む新しい '製品'モデルを作成する予定です。 {名前、価格、都市}。これらは、HallとCatererの両方で共通のカラムで、show()メソッドを呼び出すときにそれらを表示したいと思います。私の最初の質問は、それを行う正しい方法ですか?

Djangoの管理インターフェースを使ってそれぞれのテーブルに新しいHallまたはCatererを追加するときは、これらの3つのカラム値だけをProductテーブルに挿入する必要があります。製品テーブル)。 これをどうすれば実現できますか?

答えて

0

Productを基本クラスにし、複数のテーブル継承を使用します。だから、

https://docs.djangoproject.com/en/1.10/topics/db/models/#multi-table-inheritance

+0

私はそれの子クラスとして製品クラスの基本クラスとホールや仕出し屋を作る、と私はホールや仕出し屋に新しいレコードを追加する場合、それは、同様の製品テーブルに挿入されますか?私は何とか2つの異なる列、すなわちProductテーブルにHallとCatererの主キーを挿入することができます。 HallId、CatererId –

関連する問題