2009-10-09 30 views

Trả lời

38

Tôi không biết nếu bạn thực sự cần một ví dụ, nó khá dễ dàng:

  • nếu bạn biết đó là một đối tượng phù hợp với truy vấn của bạn, sử dụng được. Nó sẽ thất bại nếu nó nhiều hơn một.
  • nếu không sử dụng bộ lọc, bộ lọc này sẽ cung cấp cho bạn danh sách các đối tượng.

Để được chính xác hơn:

  • MyTable.objects.get(id=x).whatever mang đến cho bạn whatever tài sản của đối tượng của bạn.

get() tăng MultipleObjectsReturned nếu có nhiều hơn một đối tượng đã được tìm thấy. Ngoại lệ MultipleObjectsReturned là thuộc tính của mô hình lớp.

get() tăng ngoại lệ cho DoesNotExist nếu không tìm thấy đối tượng cho các thông số được cung cấp . Ngoại lệ này cũng là một thuộc tính của lớp mô hình.

  • MyTable.objects.filter(somecolumn=x) không chỉ có thể sử dụng làm danh sách, nhưng bạn cũng có thể truy vấn lại, chẳng hạn như MyTable.objects.filter(somecolumn=x).order_by('date').
  • Lý do là nó không thực sự là một danh sách, mà là một đối tượng truy vấn. Bạn có thể lặp qua nó như thông qua danh sách: for obj in MyTable.objects.filter(somecolumn=x)
Các vấn đề liên quan