更新_or_create Django 1.10

2024-10-02 20:38:03 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有来自API的实时数据,因为我们有相同的SKU,在多个市场,我需要一个复合PK,(SKU,国家), 我知道Django不支持这一点,所以我使用update\u或_create函数。在

我的问题是数据随着数量值的变化而不断重复

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

以下是保存数据的调用:

^{pr2}$

如果我使用函数不正确,我想更新SKU/国家/地区行,我不希望有不同数量值的重复。我知道我可以使用get,但我想利用这个函数,这样就不必编写条件语句。默认值是否应该包含更新值,kwarg是否应保存要匹配的值?在

回答:

        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 }
       )

根据MrName建议


Tags: 数据函数数量createmerchantupdate国家country
1条回答
网友
1楼 · 发布于 2024-10-02 20:38:03

我相信所有提供的关键字参数都将创建匹配条件。由于您将quantity作为关键字参数传递,因此该方法将查找具有该数量的现有记录,但没有找到它,因此创建了一个重复的记录。在

如果将quantity参数移到defaults,则代码应根据所需的搜索条件(例如account)成功地找到现有记录,然后更新数量。在

相关问题 更多 >