2016-08-11 19 views
1

私は数日間私の問題の解決策を探していましたが、私が欲しいものを正確に見つけることができません。買い物かごのような形で、いくつかの製品をリストに載せたいと思っています。あなたは必要な製品をチェックし、それぞれの量を記入します。その後、予約を編集することができます。私は同様の問題に対処するいくつかの記事を見てきましたDjango - 多対多フォームフィールド+余分な "through"フィールド

class Reservation(models.Model): 
    # some fields... 
    products = models.ManyToManyField(Product, through='ProductReservation') 

class Product(models.Model): 
    # some fields... 

class ProductReservation(models.Model): 
    quantity = models.IntegerField() 
    reservation = models.ForeignKey(Reservation) 
    product = models.ForeignKey(Product) 

私の問題は、予約および製品は、余分な「数量」フィールドを持つように、多対多の中間モデルを介してリンクされていることです私はそれをクライアントに利用可能にする必要があります。インラインformsetをカスタムクエリーセットで使用することを考えましたが、異なるクラス間のリンクを作成することはできませんでした。私は常に提出されたデータから自分のフィールドに直接データを移入することができますが、私はそのフォームを複数のビューで再利用する必要があります。

ありがとうございました!

答えて

1

だから、最初のあなたが予約を作成 reservation = Reservation.objects.create(some_field=some_value)

次に、あなたが最後にあなたがあなたのフォームが上に構築することができますProductReservation ProductReservation.create(quantity=100, reservation=reservation, product=product)

を使用して2つの間のリンクを作成することができる製品 product = Product.objects.create(some_field=some_value)

を作成ProductReservationモデル。 ここでそれがどのように記載されていますか:Accessing Many to Many "through" relation fields in Formsets 状況がさらに複雑になる場合は、インラインフォーム "ショートカット"なしでカスタムフォームを作成することを検討してください。

関連する問題