簡體   English   中英

為什么在try塊中獲得MultipleObjectsReturned錯誤?

[英]Why am getting a MultipleObjectsReturned error inside a try block?

對這一個的任何幫助都會很棒。 我正在使用python 2.7和django 1.2這是我的代碼:

for save in saved: #list to iterate
    try:
        sect = obj.get(name=save) #obj is a RelatedManager
    except: #if two sections have the same name
        sect = obj.filter(name=save)
    else:
        #finish my code

每次遇到get()語句時,我都會收到MultipleObjectsReturned錯誤。 我不是python的專家所以我想我錯過了一些簡單的東西。

兩個對象的name值等於save的值

當使用get並且返回的行超過1行時,它會引發MultipleObjectsReturned

我認為你應該明確地抓住這個,因為你的DoesNotExist除了它還會捕獲DoesNotExist錯誤(和所有的錯誤)

    from django.core.exceptions import MultipleObjectsReturned

    try:
        sect = obj.get(name=save) #obj is a RelatedManager
    except MultipleObjectsReturned: #if two sections have the same name
        sect = obj.filter(name=save)[0]
    else:
        #finish my code

因為您在數據庫中有多個記錄,其中name = save。 使用filter()並獲取索引為0的那個,如果你只需要一個或分別正確處理該情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM