Existe alguma função Django que me permite obter um objeto do banco de dados, ou None se nada corresponder?
No momento, estou usando algo como:
foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None
Mas isso não está muito claro e é complicado ter em todos os lugares.
len(foo)é ruim : " Observação: não use len () em QuerySets se tudo o que você deseja fazer é determinar o número de registros no conjunto. É muito mais eficiente lidar com uma contagem no nível do banco de dados, usando SELECT COUNT do SQL (), e o Django fornece um método count () precisamente por esse motivo. ". Reescrito:foo = foo[0] if foo.exists() else None
first(): P