Чи є якась функція Django, яка дозволить мені отримати об'єкт із бази даних, або None, якщо нічого не відповідає?
Зараз я використовую щось на кшталт:
foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None
Але це не дуже зрозуміло, і це брудно мати всюди.
len(foo)
погано : " Примітка: Не використовуйте len () на QuerySets, якщо все, що ви хочете зробити, це визначити кількість записів у наборі. Набагато ефективніше обробляти підрахунок на рівні бази даних, використовуючи SELECT COUNT SQL (), і Django забезпечує метод count () саме з цієї причини. " Переписано:foo = foo[0] if foo.exists() else None
first()
: P