相對列表來說,有些時候我們更需要獲取單個的對象, `` get()`` 方法就是在此時使用的:
>>> Publisher.objects.get(name="Apress")<Publisher: Apress>
這樣,就返回了單個對象,而不是列表(更準確的說,QuerySet)。 所以,如果結(jié)果是多個對象,會導致拋出異常:
>>> Publisher.objects.get(country="U.S.A.")Traceback (most recent call last): ...MultipleObjectsReturned: get() returned more than one Publisher -- it returned 2! Lookup parameters were {'country': 'U.S.A.'}如果查詢沒有返回結(jié)果也會拋出異常:
>>> Publisher.objects.get(name="Penguin")Traceback (most recent call last): ...DoesNotExist: Publisher matching query does not exist.
這個 DoesNotExist 異常 是 Publisher 這個 model 類的一個屬性,即 Publisher.DoesNotExist。在你的應用中,你可以捕獲并處理這個異常,像這樣:
try: p = Publisher.objects.get(name='Apress')except Publisher.DoesNotExist: print "Apress isn't in the database yet."else: print "Apress is in the database."
新聞熱點
疑難解答
圖片精選