第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Django 中獲取 QuerySet 的一個(gè)或零個(gè)元素?

在 Django 中獲取 QuerySet 的一個(gè)或零個(gè)元素?

大話西游666 2023-06-27 13:07:12
在 Django 3.1 中,假設(shè)我有一些 model M,并且我有一個(gè)QuerySetoverM我期望有一個(gè)或零個(gè)元素。如何分支它是否是一個(gè)或零個(gè)元素(如果有兩個(gè)或多個(gè)則拋出異常),并且在具有一個(gè)元素的分支中,如何獲取一個(gè)對(duì)象M:try:    my_query_set = M.objects.filter(some_filter_expr)    if ???:        m = ??? # the one M object    else:        on_zero_objects()except ???:    more_than_one_object()
查看完整描述

3 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

使用.first()(或last()

one_or_none?=?M.objects.filter(some_filter_expr).first()

因此,該變量one_or_none將具有 model 的實(shí)例MNone


您可以按以下方式處理多于貨幣元素的條件或單獨(dú)的條件,

my_query_set = M.objects.filter(some_filter_expr)

try:

? ? my_query_set[1]

? ? handle_more_than_one_element()

except IndexError:

? ? try:

? ? ? ? my_query_set[0]

? ? ? ? handle_only_one_element()

? ? except IndexError:

? ? ? ? handle_no_element()


查看完整回答
反對(duì) 回復(fù) 2023-06-27
?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用.exists()檢查 中是否存在任何數(shù)據(jù)my_queryset,如果有,則使用.get()獲取一個(gè)對(duì)象。如果有多個(gè)對(duì)象,則會(huì)引發(fā)MultipleObjectsReturned錯(cuò)誤。在 except 塊中,您可以使用 來處理它more_than_one_object。


my_query_set = M.objects.filter(some_filter_expr)

try:

? ? if my_query_set.exists()

? ? ? ? m = my_query_set.get()

? ? else:

? ? ? ? on_zero_objects()

except MultipleObjectsReturned:

? ? more_than_one_object()


查看完整回答
反對(duì) 回復(fù) 2023-06-27
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以使用來獲取單個(gè)元素,并處理案例和案例.get()的異常。DoesNotExistMultipleObjectsReturned


from django.core.exceptions import MultipleObjectsReturned


...


try:

    model_object = M.objects.get(some_filter_expr)

except M.DoesNotExist:

     on_zero_objects()

except MultipleObjectsReturned:

     more_than_one_object()


查看完整回答
反對(duì) 回復(fù) 2023-06-27
  • 3 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)