2009-07-02 3 views
2

私は1つの製品が多くの価格を含むことができるので、価格はFKの1つの製品モデルを持っています。しかし、私はまた、これらの多くの価格が実際の価格であるべきものを選ぶことができるようにしたいので、これを達成するために価格(製品モデル)と製品(価格モデル)の両方を持っています。 これらの次のモデルを考えてみましょう:私はドロップダウンメニューで価格をフィルタリング問題を抱えておりますがDjango管理者のFKでの動的フィルタリング

class Product(models.Model): 
name = models.CharField() 
price  = models.ForeignKey('Price', blank=True, null=True, related_name='Product') 

class Price(models.Model): 
amount = models.IntegerField() 
product = models.ForeignKey('Product', related_name='product') 

これが正常に動作します。それは、その製品に関係する価格だけでなく、すべての価格を私に与えます。試しました

limit_choices_to 

しかし、それは動的値では機能しないようです。

は、私はまた、このパッチに遭遇しています http://code.djangoproject.com/ticket/2445

最善の解決策はここにどうなるかわかりません。ありがとう、ポインタありがとう!

+0

商品に多くの価格が含まれている可能性がありますが、1つを選択するとどういう意味ですか?私はあなたがそれでやろうとしていることの範囲を理解しようとしているだけなので、関連性のあるものを提案することができます。 – AlbertoPL

+0

1つの製品は、多くの価格(FK1、インライン)を持つことができます。しかし、1つの製品に関連する価格のうち、1つは、後で詳細ビューページに表示される「メイン」価格(FK2、ドロップダウンメニュー)として選択されます。 私はそれがより良い説明だったことを願っています:) – orwellian

答えて

0

あなたは行うことができます:

価格= price.object_set_all(製品=「あなたの製品」)

を私は自分がこの中で動作する場合、私は覚えていませんのでで「あなたの製品を」タグを残しました状況。しかし、私はと考えています。これは正しいアプローチかもしれません。

両方のモデルにForeignKeyが表示されるべきではありません。本当にPriceにのみ必要です。次に、Productモデルには、ユーザー選択に基づくcurrent_priceというフィールドがあります。

+0

返信ありがとうAlbertoPL私は 'ForeignKey'オブジェクトに属性 'object_set'または 'ForeignKey'オブジェクトに属性 'object_set_all'がありません:price = models.ForeignKey( ' Price ')prices = data.object_set_all(product =' your product ')また、Productモデルのcurrent_priceフィールドがどのように見えるかわかりません。 – orwellian

+0

これは完全に間違ってこのhehを教えたからです。 Product.objects.all()< - あなたは、かっこ内の任意のフィールドでフィルタリングできます。 – AlbertoPL

+0

むしろ、Price.objects.all()、すみません。 – AlbertoPL

関連する問題