我需要在我的一个模型中更新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
我希望每次迭代都会更新模型中的数据
答案 0 :(得分:0)
注意括号。您的update()
应该在您的filter()
之后。不在里面
您确定自己的idlist吗?因为您正在使用空字符串进行过滤。因此,您filter()
将不返回任何信息,也不更新。
您可以像这样更新您的数据结构。将ID和新网址关联到字典中。
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)
答案 1 :(得分:0)
您可以将for循环与zip
结合使用:
for id, url in zip(idlist, urls):
m = Model.objects.filter(item_id=id)
m.update(product_url = url)