更新在 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)
我需要在我的一个模型中更新 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)