Django check if a related object exists error: RelatedObjectDoesNotExist

django, python

Solution

This is because the ORM has to go to the database to check to see if `customer` exists. Since it doesn't exist, it raises an exception.

You'll have to change your method to the following:

def has_related_object(self):
    has_customer = False
    try:
        has_customer = (self.customers is not None)
    except Customer.DoesNotExist:
        pass
    return has_customer and (self.car is not None)

I don't know the situation with `self.car` so I'll leave it to you to adjust it if it needs it.

Side note: If you were doing this on a `Model` that has the `ForeignKeyField` or `OneToOneField` on it, you would be able to do the following as a shortcut to avoid the database query.

def has_business(self):
    return self.business_id is not None

Problem

I have a method `has_related_object` in my model that needs to check if a related object exists ``` class Business(base): name = models.CharField(max_length=100, blank=True, null=True) def has_related_object(self): return (self.customers is not None) and (self.car is not None) class Customer(base): name = models.CharField(max_length=100, blank=True, null=True) person = models.OneToOneField('Business', related_name="customer") ``` But I get the error: Business.has_related_object() RelatedObjectDoesNotExist: Business has no customer.

Original source