You can create a shortcut like this (based on 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
I don’t know why this shortcut does not exist (maybe someone with a lot of django under their waist can explain), because this is a reasonably useful shortcut that I use from time to time.
source
share