Bunu bir yönetici veya genel işlev yoluyla yapsanız da, kwarg'larınız birden fazla nesne alırsa get () işlevi bunu artıracağından, TRY deyiminde 'MultipleObjectsReturned' öğesini yakalamak isteyebilirsiniz.
Genel işleve dayalı olarak:
def get_unique_or_none(model, *args, **kwargs):
try:
return model.objects.get(*args, **kwargs)
except (model.DoesNotExist, model.MultipleObjectsReturned), err:
return None
ve yöneticide:
class GetUniqueOrNoneManager(models.Manager):
"""Adds get_unique_or_none method to objects
"""
def get_unique_or_none(self, *args, **kwargs):
try:
return self.get(*args, **kwargs)
except (self.model.DoesNotExist, self.model.MultipleObjectsReturned), err:
return None