更新在Django orm中不起作用,我的代码有问题吗?提前致谢

时间:2019-05-29 13:26:45

标签: django orm django-2.1

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

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

2 个答案:

答案 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)