新聞中心
有時(shí)候,你想統(tǒng)一設(shè)置 ?QuerySet ?中的所有對(duì)象的某個(gè)字段。你可以通過(guò) ?update()? 達(dá)到目的。例如:

為遷西等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及遷西網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、做網(wǎng)站、遷西網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
# Update all the headlines with pub_date in 2007.
Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')你僅能用此方法設(shè)置非關(guān)聯(lián)字段和 ?ForeignKey ?字段。要修改非關(guān)聯(lián)字段,需要用常量提供新值。要修改 ?ForeignKey ?字段,將新值置為目標(biāo)模型的新實(shí)例。例如:
>>> b = Blog.objects.get(pk=1)
# Change every Entry so that it belongs to this Blog.
>>> Entry.objects.all().update(blog=b)方法 ?update()? 立刻被運(yùn)行,并返回匹配查詢調(diào)節(jié)的行數(shù)(若某些行早已是新值,則可能不等于實(shí)際匹配的行數(shù))。更新 ?QuerySet ?的唯一限制即它只能操作一個(gè)數(shù)據(jù)表:該模型的主表。你可以基于關(guān)聯(lián)字段進(jìn)行篩選,但你只能更新模型主表中的列。例如:
>>> b = Blog.objects.get(pk=1)
# Update all the headlines belonging to this Blog.
>>> Entry.objects.filter(blog=b).update(headline='Everything is the same')?update()? 方法是直接轉(zhuǎn)為 SQL 語(yǔ)句的。這是一種用于直接更新的批量操作。它并不會(huì)調(diào)用模型的 ?save()? 方法,也不會(huì)發(fā)出 ?pre_save? 或 ?post_save? 信號(hào)(這是調(diào)用 ?save()? 的結(jié)果),或使用 ?auto_now? 字段選項(xiàng)。若想保存 ?QuerySet ?中的每項(xiàng),并確保調(diào)用了每個(gè)實(shí)例的 ?save()? 方法,你并不需要任何特殊的函數(shù)來(lái)處理此問(wèn)題。迭代它們,并調(diào)用它們的 ?save()? 方法:
for item in my_queryset:
item.save()調(diào)用更新方法時(shí)也能使用 ?F? 表達(dá)式 基于同一模型另一個(gè)字段的值更新某個(gè)字段。這在基于計(jì)數(shù)器的當(dāng)前值增加其值時(shí)特別有用。例如,要增加博客中每個(gè)條目 ?pingback ?的計(jì)數(shù):
>>> Entry.objects.all().update(number_of_pingbacks=F('number_of_pingbacks') + 1)然而,與過(guò)濾器中的 ?F()對(duì)象和排除字句不同,你不能在更新方法中使用 ?F()? 對(duì)象的同時(shí)使用 ?join?——你只能引用被更新模型的內(nèi)部字段。若你試著在使用 ?join ?字句時(shí)使用 ?F()? 對(duì)象,會(huì)拋出一個(gè) ?FieldError()?:
# This will raise a FieldError
>>> Entry.objects.update(headline=F('blog__name')) 本文題目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0執(zhí)行查詢-一次修改多個(gè)對(duì)象
鏈接URL:http://www.5511xx.com/article/dhgpocc.html


咨詢
建站咨詢
