Подтвердить что ты не робот

Ошибка Django RelatedObjectDoesNotExist

Я не вижу, чтобы это работало...

У меня есть метод has_related_object в моей модели, который должен проверить, существует ли связанный объект...

class Business(base):
      name =  models.CharField(max_length=100, blank=True, null=True)


  def has_related_object(self):
    has_customer = False
    has_car = False

    try:
        has_customer = (self.customer is not None)
    except Business.DoesNotExist:
        pass

    try:
        has_car = (self.car.park is not None)
    except Business.DoesNotExist:
        pass

    return has_customer and has_car



class Customer(base):
      name =  models.CharField(max_length=100, blank=True, null=True)
      person = models.OneToOneField('Business', related_name="customer")

Ошибка

RelatedObjectDoesNotExist Business не имеет клиента.

Мне нужно проверить, существуют ли эти связанные объекты, но из метода бизнес-объекта

4b9b3361

Ответ 1

Вы ловушки except Business.DoesNotExist, но это не исключение, которое бросается. Per этот SO ответьте, вы хотите поймать общий DoesNotExist исключение.

EDIT: см. комментарий ниже: фактические исключения ловятся DoesNotExist, потому что они наследуют от DoesNotExist. Вам лучше ухватиться за реальное исключение, а не за исключение всех исключений DoesNotExist из вовлеченных моделей.