gpt4 book ai didi

python-3.x - 使用 Django bulk_update() 时,'dict' 对象没有属性 'pk'

转载 作者:行者123 更新时间:2023-12-04 07:31:10 25 4
gpt4 key购买 nike

我有以下代码:

obj = Products.objects.filter(dump__product_name = 'ABC, dump__product_color = 'black').values()
new_price = [100, 200, 300]

for item in range(len(obj)):
obj[item]['price'] -= new_price[item]

Products.objects.filter(dump__product_name = 'ABC, dump__product_color = 'black').bulk_update(obj, ['price'])
但我收到错误, Exception inside application: 'dict' has no attribute 'pk'obj 的值如下所示:
<QuerySet [{'id': 1, 'product_name': 'Acer - Laptop', 'price': 350}, 
{'id': 1, 'product_name': 'Dell - Laptop', 'price': 450},
{'id': 1, 'product_name': 'Samsung- Laptop', 'price': 650}]>
我无法弄清楚代码有什么问题。任何帮助将非常感激。非常感谢提前

最佳答案

你不应该使用 .values()因为这将创建字典而不是模型对象,因此不会提供模型提供的所有功能。
您可以与:

obj = list(Products.objects.filter(
dump__product_name = 'ABC', dump__product_color = 'black'
))
new_price = [100, 200, 300]

for item, prc in zip(obj, new_price):
item.price -= prc

Products.objects.bulk_update(obj, ['price'])

关于python-3.x - 使用 Django bulk_update() 时,'dict' 对象没有属性 'pk',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67922494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com