2009-10-09 37 views

回答

38

我不知道你是否真的需要一個例子,它很容易:

  • 如果你知道這是一個對象,你的查詢相匹配,使用得到。如果它不止一個,它會失敗。
  • 否則使用過濾器,它給你一個對象列表。

爲了更精確:

  • MyTable.objects.get(id=x).whatever向你對象的whatever財產。

的get()引發MultipleObjectsReturned如果不止一個對象被發現。 MultipleObjectsReturned異常是類型 類的屬性。

get()如果在 給定參數中未找到對象,則會引發DoesNotExist異常。這個異常也是模型類的一個屬性。

  • MyTable.objects.filter(somecolumn=x)不僅可用作名單,但你也可以再次查詢它,像MyTable.objects.filter(somecolumn=x).order_by('date')
  • 原因是它實際上不是一個列表,而是一個查詢對象。你可以像遍歷列表一樣遍歷它:for obj in MyTable.objects.filter(somecolumn=x)
相關問題