15

Offerモデルを含む Django アプリケーションに取り組んでいます。インスタンスには価格設定条件がOffer含まれており、製品定義を指しています。製品モデルは実際には階層です (Televisionモデル、Camcorderモデルなどがあります)。したがって、Offerモデルには、任意の製品を指すポリモーフィック (または「ジェネリック」) 関連付けが含まれている必要があります。

今のところ、私が見つけたのは、アプリケーションで一般的な関連付けContentTypesを使用することだけです。これでいいかもしれませんが、もしあれば代替手段を探しています。

ご協力いただきありがとうございます。

(回答ごとに1つの解決策をお願いします)

4

5 に答える 5

6

ContentTypes は正しいアプローチです。これは、ForignKey が 1 つのタイプのテーブルのみを指すことができるため、中間テーブルを通過し、異なるタイプに応じて分割を行う必要があるためです。

したがって、クラス階層のモデル継承ですが、外部キーの ContentType です。

于 2010-01-23T23:27:39.283 に答える
3

Django ではそれができません。一般的な関係を使用するか、 django_polymorphicのようなこの機能を追加する Django アプリを使用してください。

于 2011-03-03T05:12:59.270 に答える
3

モデルではなく「任意の製品」のみを指す必要がある場合の解決策は、すべての製品が継承する Product モデル (つまり、テレビとカムコーダーはどちらも Product のサブクラス) を持ち、Offer モデルに ForeignKey を与えることです。製品。

于 2009-01-06T18:49:14.437 に答える
-4

モデルの継承を見たいと思うかもしれません。

于 2009-01-06T10:15:46.470 に答える