更新在 django orm 中不生效,我的代码有问题吗?

Updates doesn't take affect in django orm, Is there something wrong in my code?

我需要在我的一个模型中更新 url_field 中的多行,每个 product_id 都有自己要加载的相应新值。我的代码有什么问题?没有返回错误。

idlist= ["",""]
url = ["https://www.sample.com","https://www.sample2.com"]
i = 0


while i < len(item_idlist):
Model.objects.filter(item_id=idlist[i].update(product_url=url[i]))
i += 1

我希望每次迭代都会更新模型中的数据。

小心你的括号。您的 update() 应该在您的 filter() 之后。不在里面。

你确定你的 idlist 吗?因为您正在使用空字符串进行过滤。所以你 filter() 不会 return 什么,也不会更新任何东西。

您可以像这样更新您的数据结构。将 id 与新 url 关联到字典中。

idlist_url = {
 1: "https://www.sample.com",
 2: "https://www.sample2.com"
}

for id, new_url in idlist.items():
    Model.objects.filter(item_id=id).update(product_url=new_url)

您可以结合使用 for 循环 zip:

for id, url in zip(idlist, urls):
     m = Model.objects.filter(item_id=id)
     m.update(product_url = url)