为什么在try块中获得MultipleObjectsReturned错误?

Jac*_*ing 3 python django exception

对这一个的任何帮助都会很棒.我正在使用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
Run Code Online (Sandbox Code Playgroud)

MultipleObjectsReturned每次碰到get()声明时我都会收到错误.我不是python的专家所以我想我错过了一些简单的东西.

dm0*_*514 9

两个对象的name值等于save

使用时get,返回的行数超过1行MultipleObjectsReturned

我认为你应该明确地抓住这个,因为你现在的除了它也会捕获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
Run Code Online (Sandbox Code Playgroud)