日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Django4.0教程:Django4.0執(zhí)行查詢-一次修改多個對象

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

為遷西等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及遷西網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、做網(wǎng)站、遷西網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(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 ?的唯一限制即它只能操作一個數(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 語句的。這是一種用于直接更新的批量操作。它并不會調(diào)用模型的 ?save()? 方法,也不會發(fā)出 ?pre_save? 或 ?post_save? 信號(這是調(diào)用 ?save()? 的結(jié)果),或使用 ?auto_now? 字段選項(xiàng)。若想保存 ?QuerySet ?中的每項(xiàng),并確保調(diào)用了每個實(shí)例的 ?save()? 方法,你并不需要任何特殊的函數(shù)來處理此問題。迭代它們,并調(diào)用它們的 ?save()? 方法:

for item in my_queryset:
    item.save()

調(diào)用更新方法時也能使用 ?F? 表達(dá)式 基于同一模型另一個字段的值更新某個字段。這在基于計數(shù)器的當(dāng)前值增加其值時特別有用。例如,要增加博客中每個條目 ?pingback ?的計數(shù):

>>> Entry.objects.all().update(number_of_pingbacks=F('number_of_pingbacks') + 1)

然而,與過濾器中的 ?F()對象和排除字句不同,你不能在更新方法中使用 ?F()? 對象的同時使用 ?join?——你只能引用被更新模型的內(nèi)部字段。若你試著在使用 ?join ?字句時使用 ?F()? 對象,會拋出一個 ?FieldError()?:

# This will raise a FieldError
>>> Entry.objects.update(headline=F('blog__name'))

分享題目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0執(zhí)行查詢-一次修改多個對象
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/dhgpocc.html