Вы можете создать ярлык, подобный этому (на основе get_object_or_404):
from django.shortcuts import _get_queryset
def get_object_or_none(klass, *args, **kwargs):
queryset = _get_queryset(klass)
try:
return queryset.get(*args, **kwargs)
except queryset.model.DoesNotExist:
return None
Не уверен, почему этот ярлык не существует (возможно, кто-то с большим количеством django под поясом), так как этодовольно полезный ярлык, который я использую время от времени.