2017-10-24 19 views
0

こんにちは私は複数の市場で同じSKUを持っているので、私は複合PK(SKU、国)を必要としているので、 私はDjangoがこれをサポートしていないことを知っています私はupdate_or_create関数を使用しています。update_or_create Django 1.10

私の問題は、データが量の値は、ここで

country merch quantity sku 
USA CC 2807 1005 B00VQVPRH8 
USA CC 2806 1004 B00VQVPRH8 

を変更すると複製し続けるということですが、データを保存するための呼び出しは次のとおりです。

obj, created = FBAInventory.objects.update_or_create(
    Account=merchant["company"], 
    ASIN=ASIN, 
    TotalSupplyQuantity=TotalSupplyQuantity, 
    InStockSupplyQuantity=InStockSupplyQuantity, 
    FNSKU=FNSKU, 
    EarliestAvailability=EarliestAvailability, 
    defaults={'SellerSKU': SellerSKU, 'Country': merchant["country"]}, 
) 

私が間違って機能を使用しています、私がしたいですSKU/Country行を更新すると、私は異なる数量の値を持つ重複を望んでいません。 getを使うことができますが、この関数を利用したいので、条件文を書く必要はありません。デフォルト値は更新値を保持し、kwargは一致する値を保持する必要がありますか?

ANSWER:MrName提案

答えて

2

あたり

 obj, created = FBAInventory.objects.update_or_create(
     Account=merchant["company"], 
     ASIN=ASIN, 
     FNSKU=FNSKU, 
     defaults={'SellerSKU': SellerSKU, 'Country': merchant["country"], 
     'TotalSupplyQuantity':TotalSupplyQuantity,'InStockSupplyQuantity':InStockSupplyQuantity, 'EarliestAvailability':EarliestAvailability } 
     ) 

私はすべての提供のキーワード引数が一致基準を作成することを考えています。数量をキーワード引数として渡すので、メソッドはその数量を持つ既存のレコードを探していて、それを見つけられず、重複を作成しています。

数量引数をdefaultsに移動すると、コードは目的の検索基準(たとえば、アカウントなど)に基づいて既存のレコードを正常に見つけて、数量を更新する必要があります。

+0

私は答えTYを更新しました。 –

関連する問題