Django object.get_or_create()的使用方法是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、西安網(wǎng)絡(luò)推廣、小程序定制開發(fā)、西安網(wǎng)絡(luò)營銷、西安企業(yè)策劃、西安品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供西安建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
使用方式
user, b = User.objects.get_or_create(u_id=1, name="張三", defaults={'address':'上海'}) print(user)
等同于
users = User.objects.get(u_id=1, name="張三") if user: print(user) else: user = User.objects.create(u_id=1, name="張三", address="上海") print(user)
get_or_create
顧名思義,查詢或者創(chuàng)建一條數(shù)據(jù),首先是執(zhí)行的時(shí)候首先會(huì)去查詢有沒有這個(gè)值,如果有就返回,沒有就創(chuàng)建。
get_or_create
會(huì)返回一個(gè)tuple,第一個(gè)值是查到或者創(chuàng)建的數(shù)據(jù),第二個(gè)值是一個(gè)布爾,表示是否執(zhí)行了創(chuàng)建操作。
在進(jìn)行查詢的時(shí)候和使用get
查詢類似,當(dāng)查到超過一條數(shù)據(jù)的時(shí)候會(huì)觸發(fā)MultipleObjectsReturned
。
創(chuàng)建的時(shí)候也和使用create
創(chuàng)建類似。
如果你正在使用MySQL,請(qǐng)確保使用READ COMMITTED 隔離級(jí)別而不是默認(rèn)的REPEATABLE READ,否則你將會(huì)遇到get_or_create 引發(fā)IntegrityError 但對(duì)象在接下來的get() 調(diào)用中并不存在的情況
。
看完上述內(nèi)容,你們掌握Django object.get_or_create()的使用方法是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!