2009-10-09 16 views

Odpowiedz

38

ja nie wiem, czy naprawdę trzeba przykład, jest dość proste:

  • jeśli wiesz, że to jeden obiekt, który pasuje zapytanie, należy uzyskać. To zawiedzie, jeśli jest więcej niż jeden.
  • inaczej użyj filtra, który daje listę obiektów.

Aby być bardziej precyzyjnym:

  • MyTable.objects.get(id=x).whatever daje własność swojego obiektu whatever.

get() podnosi MultipleObjectsReturned jeśli więcej niż jeden obiekt został znaleziony. Wyjątek MultipleObjectsReturned jest atrybutem klasy modelu .

get() podnosi wyjątek DoesNotExist, jeśli obiekt nie został znaleziony dla podanych parametrów . Ten wyjątek jest również atrybutem klasy modelu.

  • MyTable.objects.filter(somecolumn=x) nie nadaje się do użytku tylko w postaci listy, ale można też zapytać go ponownie, coś jak MyTable.objects.filter(somecolumn=x).order_by('date').
  • Powód jest taki, że w rzeczywistości nie jest to lista, ale obiekt zapytania. Możesz iterować przez niego, jak na liście: for obj in MyTable.objects.filter(somecolumn=x)
Powiązane problemy