Có bất kỳ hàm Django nào cho phép tôi lấy một đối tượng trong cơ sở dữ liệu hay không nếu không có gì phù hợp?
Ngay bây giờ tôi đang sử dụng một cái gì đó như:
foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None
Nhưng điều đó không rõ ràng lắm, và thật lộn xộn khi có ở khắp mọi nơi.
len(foo)
không tốt : " Lưu ý: Không sử dụng len () trên QuerySets nếu tất cả những gì bạn muốn làm là xác định số lượng bản ghi trong tập hợp. Sẽ hiệu quả hơn nhiều khi xử lý số lượng ở cấp cơ sở dữ liệu, bằng cách sử dụng SELECT COUNT (), và Django cung cấp một phương thức count () vì lý do này. ". Đã viết lại:foo = foo[0] if foo.exists() else None
first()
: P