W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
要將修改保存至數(shù)據(jù)庫中已有的某個(gè)對(duì)象,使用 ?save()
?。
有一個(gè)已被存入數(shù)據(jù)庫中的 ?Blog
? 實(shí)例 ?b5
?,本例將其改名,并在數(shù)據(jù)庫中更新其記錄:
>>> b5.name = 'New name'
>>> b5.save()
這在幕后執(zhí)行了 ?UPDATE
?SQL 語句。Django 在你顯示調(diào)用 save() 后才操作數(shù)據(jù)庫。
更新 ?ForeignKey
?字段的方式與保存普通字段的方式相同——只需將正確類型的實(shí)例分配給相關(guān)字段。本例為 ?Entry
?類的實(shí)例 ?entry
?更新了 ?blog
?屬性,假設(shè) ?Entry
?和 ?Blog
?的實(shí)例均已保存在數(shù)據(jù)庫中(因此能在下面檢索它們):
>>> from blog.models import Blog, Entry
>>> entry = Entry.objects.get(pk=1)
>>> cheese_blog = Blog.objects.get(name="Cheddar Talk")
>>> entry.blog = cheese_blog
>>> entry.save()
更新 ?ManyToManyField
字段有點(diǎn)不同——在字段上使用 ?add()
? 方法為關(guān)聯(lián)關(guān)系添加一條記錄。本例將 ?Author
?實(shí)例 ?joe
?添加至 ?entry
?對(duì)象:
>>> from blog.models import Author
>>> joe = Author.objects.create(name="Joe")
>>> entry.authors.add(joe)
要一次添加多行記錄至 ?ManyToManyField
?字段,在一次調(diào)用 ?add()
? 時(shí)傳入多個(gè)參數(shù),像這樣:
>>> john = Author.objects.create(name="John")
>>> paul = Author.objects.create(name="Paul")
>>> george = Author.objects.create(name="George")
>>> ringo = Author.objects.create(name="Ringo")
>>> entry.authors.add(john, paul, george, ringo)
Django 會(huì)在添加或指定錯(cuò)誤類型的對(duì)象時(shí)報(bào)錯(cuò)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: