av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)Django4.0教程:Django4.0執(zhí)行查詢(xún)-復(fù)制模型實(shí)例

盡管沒(méi)有用于復(fù)制模型實(shí)例的內(nèi)置方法,但可以輕松地創(chuàng)建復(fù)制所有字段值的新實(shí)例。在最簡(jiǎn)單的情況下,您可以將 ?pk ?設(shè)置為 ?None ?并將 ?_state.adding? 設(shè)置為 ?True?。使用我們的博客示例:

blog = Blog(name='My blog', tagline='Blogging is easy')
blog.save() # blog.pk == 1

blog.pk = None
blog._state.adding = True
blog.save() # blog.pk == 2

若你使用了集成,事情會(huì)更復(fù)雜。考慮下 ?Blog ?的一個(gè)子類(lèi):

class ThemeBlog(Blog):
    theme = models.CharField(max_length=200)

django_blog = ThemeBlog(name='Django', tagline='Django is easy', theme='python')
django_blog.save() # django_blog.pk == 3

由于繼承的工作原理,您必須將 ?pk ?和 ?id ?都設(shè)置為 ?None?,并將 ?_state.adding? 設(shè)置為 ?True?:

django_blog.pk = None
django_blog.id = None
django_blog._state.adding = True
django_blog.save() # django_blog.pk == 4

該方法不會(huì)拷貝不是模型數(shù)據(jù)表中的關(guān)聯(lián)關(guān)系。例如, ?Entry ?有一個(gè)對(duì) ?Author ?的 ?ManyToManyField ?關(guān)聯(lián)關(guān)系。在復(fù)制條目后,你必須為新條目設(shè)置多對(duì)多關(guān)聯(lián)關(guān)系。

entry = Entry.objects.all()[0] # some previous entry
old_authors = entry.authors.all()
entry.pk = None
entry._state.adding = True
entry.save()
entry.authors.set(old_authors)

對(duì)于 ?OneToOneField ?關(guān)聯(lián),你必須拷貝關(guān)聯(lián)對(duì)象,并將其指定給新對(duì)象的關(guān)聯(lián)字段,避免違反一對(duì)一唯一性約束。例如,指定前文復(fù)制的 ?entry?:

detail = EntryDetail.objects.all()[0]
detail.pk = None
detail._state.adding = True
detail.entry = entry
detail.save()


網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)Django4.0教程:Django4.0執(zhí)行查詢(xún)-復(fù)制模型實(shí)例
瀏覽路徑:http://uogjgqi.cn/article/cogjpso.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流