¿Hay alguna función de Django que me permita obtener un objeto de la base de datos, o Ninguno si nada coincide?
Ahora mismo estoy usando algo como:
foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None
Pero eso no está muy claro y es complicado tenerlo en todas partes.
len(foo)
es malo : " Nota: No use len () en QuerySets si todo lo que quiere hacer es determinar la cantidad de registros en el conjunto. Es mucho más eficiente manejar un recuento a nivel de base de datos, usando SELECT COUNT de SQL (), y Django proporciona un método count () precisamente por esta razón. ". Reescrito:foo = foo[0] if foo.exists() else None
first()
: P