django 數(shù)據(jù)庫(kù) get_or_create函數(shù)返回值是tuple的問(wèn)題
get_or_create函數(shù)比較好用。
如果查詢到就返回,如果沒(méi)查詢到就向數(shù)據(jù)庫(kù)加入新的對(duì)象。
e.g.
size = Size.objects.get_or_create(sizeName=size_text)
注意:返回的是tuple,:(對(duì)象, 是否是創(chuàng)建的)
e.g. (size, created)
補(bǔ)充知識(shí):Django update_or_create 注意事項(xiàng)
需求: model 修改數(shù)據(jù)庫(kù)數(shù)據(jù),數(shù)據(jù)存在則更新,不存在則保存
update_or_create 用法:
update_or_create(defaults=None, **kwargs)
kwargs: 來(lái)更新對(duì)象或創(chuàng)建一個(gè)新的對(duì)象。
defaults: 是由 (field, value) 對(duì)組成的字典,用于更新對(duì)象。
返回一個(gè)由 (object, created)組成的元組,
object: 是一個(gè)創(chuàng)建的或者是被更新的對(duì)象,
created: 是一個(gè)標(biāo)示是否創(chuàng)建了新的對(duì)象的布爾值。
update_or_create: 方法通過(guò)給出的kwarg
try: obj = Person.objects.get(first_name=’John’, last_name=’Lennon’) for key, value in updated_values.iteritems(): setattr(obj, key, value) obj.save()except Person.DoesNotExist: updated_values.update({’first_name’: ’John’, ’last_name’: ’Lennon’}) obj = Person(**updated_values) obj.save()# 如果模型的字段數(shù)量較大的話,這種模式就變的非常不易用。上面的示例可以用 update_or_create() 重寫:obj, created = Person.objects.update_or_create( first_name=’John’, last_name=’Lennon’, defaults=updated_values)
以上這篇django 數(shù)據(jù)庫(kù) get_or_create函數(shù)返回值是tuple的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁(yè)2. JavaWeb Servlet中url-pattern的使用3. 使用EF Code First搭建簡(jiǎn)易ASP.NET MVC網(wǎng)站并允許數(shù)據(jù)庫(kù)遷移4. HTML5 Canvas繪制圖形從入門到精通5. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))6. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式7. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明8. XML入門的常見(jiàn)問(wèn)題(一)9. asp批量添加修改刪除操作示例代碼10. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法
