Много раз я нахожу себя фильтрацией для объекта и возвращаю None
, если его не найти. Однако этот метод я делаю это, кажется, действительно неэффективно (в терминах строк кода)Лучший способ фильтрации в Django и увидеть, существует ли объект
Когда я фильтр для объекта я обычно делаю что-то вроде этого:
person = Person.objects.filter(id=id)
if person:
person = Person.objects.get(id=id)
else:
person = None
Есть ли лучший способ сделать это ?
Редактировать Я внес изменения для разъяснения путаницы на моем конце. Запрос фильтра всегда должен возвращать 1 объект, если он существует.
'если не person'? – roganjosh
Или, может быть, коалесцирующий оператор 'person = Person.objects.filter (name = name) или None'? Это должно быть по умолчанию 'person = None', если' Person.objects.filter (name = name) 'falsy – roganjosh
Я не понимаю, почему вы повторяете фильтр в инструкции if. –