0

現在、ItemテーブルとStockテーブルを持つデータベースを用意しています。両者の間には多種多様な関係があります。単一のアイテムオブジェクトは、多くのサイズを持つことができます。次のステップでは、サイズごとに項目に 'inStock'オプションを割り当てます。 これを達成するための考えはありますか?Djangoモデル、オブジェクトごとにM2Mフィールドのunqiue属性を設定

現在models.py

class Stock(models.Model): 
    size = models.CharField(max_length=30) 
    stock = models.BooleanField(default=False) 
    def __str__(self): 
     return self.size 

class Item(models.Model): 
    title = models.CharField(max_length=250, null=True, unique=True) 
    price = models.DecimalField(max_digits=8, decimal_places=2) 
    aw_product_id = models.CharField(max_length=11, null=True) # Removed because multiple products has similar identifer 
    url = models.URLField(max_length=250)   # Removed 'unique=True'as the aw_prod_id will throw an integrity error 
    image = models.CharField(max_length=1000) 
    retailer = models.CharField(max_length=250) 
    category = models.CharField(max_length=100) 
    featured = models.CharField(max_length=10, default='NO') 
    gender = models.CharField(max_length=100, null=True) 
    sizes = models.ManyToManyField(Stock) 
    uniq_id = models.CharField(max_length=11, null=True, unique=True) # Removed because multiple products has similar identifer 

    def __str__(self): 
     return self.title 
+2

[多対多リレーションシップの追加フィールド](https://docs.djangoproject.com/en/1.11/topics/db/models/#intermediary-manytomany) –

答えて

1

あなたは追加のフィールドの代わりに、Djangoはデフォルトで作成し、自動生成モデルと、関係に使用する別のモデルを指定するのManyToManyFieldへthrough引数を使用することができます。

+0

これをどのように整理する必要があるかに関する意見私の見解?ありがとう – Jack

+1

他のモデルと同じように中間モデルを作成/削除するだけです。 https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships –

関連する問題