Мне нужно обновить несколько строк в url_field в одной из моих моделей, каждая product_id имеет свои собственные новые соответствующие значения для загрузки.Что не так с моим кодом?Ошибки не возвращаются.
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
Я ожидаю, что каждые итерации будут обновлять мои данные внутри модели.
Вы можете использовать цикл for в сочетании с zip:
zip
for id, url in zip(idlist, urls): m = Model.objects.filter(item_id=id) m.update(product_url = url)
Осторожнее с вашими скобками. Ваш update() должен быть после вашего filter(). Не внутри. Вы уверены в своем списке? Потому что вы фильтруете с пустой строкой. Таким образом, вы filter() ничего не вернете и ничего не обновите.
update()
filter()
Вы можете обновить свою структуру данных следующим образом. Свяжите идентификатор с новым 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)