このような構造で複数のものを購入するための注文フォームを作成したいと思います。
Business Data 1
---Product A
---Product B
Business Data 2
---Product A
つまり、製品 A、B を販売したいのですが、その前に「ビジネス データ」オブジェクトに追加の集計データが必要です。あれは:
Business 1: Joe's Plumbing, located at ... ... ...
---Product A, standard ad appearing in category 3, with text "awesome plumbing"
---Product B, cooler ad appearing in category 9, with text "cheap plumbing"
Business 2: Joe's Burgers, located at ... ... ...
---Product A, standard ad appearing in category 4, with text "zzz"
または、モデルレベルから、次のようになります。
class Business(models.Model):
name = models.CharField(max_length=255)
address = models.MagicAddressField()
class Ad(models.Model):
category = models.ForeignKey(Category)
text = models.CharField(max_length=255)
business = models.ForeignKey(Business)
今、ショッピング カートのバックエンド全体を再実装する代わりに、 Satchmoを使用したいと確信しています。しかし、私はこの種のことに頭を悩ませています。
Satchmo には製品の複数のオプションがあるように見えますが、それらはすべて「フラット」です。つまり、エンドユーザーが製品 A と製品 B を購入できるように Satchmo を簡単に取得できますが、データベースはビジネス 1 との接続を示しておらず、製品 A と B の両方でビジネス名などを繰り返す必要があります。
自分で作成する Business テーブルへの外部キーを持つために、satchmo が注文中に販売している最終的な「製品インスタンス」を取得できれば、おそらく自分のビュー/テンプレートでこれを回避できると思います。つまりAdのモデルをサッチモのカスタム製品のモデルにしたいというか…。
しかし、広告を次のように変更した場合:
class Ad(Product):
objects = ProductManager()
category = models.ForeignKey(Category)
text = models.CharField(max_length=255)
business = models.ForeignKey(Business)
これは間違ったセマンティクスではありませんか? それは、「これを購入すると、製品のインスタンスが事業 x を指している」という意味ではなく、「この製品タイプは事業 x に関連付けられている」という意味ではないですか?
私はここでかなり混乱しています:-/