Почему проверка объекта проходит через это условие if, а затем выдает ошибку AttributeError, потому что он не существует?
У меня есть модели, которые выглядят следующим образом:
class Agent(models.Model):
pass # there's obviously more to this but for the sake of this question...
class Deal(models.Model):
agent = models.ForeignKey(
Agent, on_delete=models.SET_NULL, null=True, blank=True
)
Внутри метода save
метода Deal
у меня есть код, который обновляет метрики Agent
, который выглядит следующим образом:
class Deal(models.Model):
agent = models.ForeignKey(
Agent, on_delete=models.SET_NULL, null=True, blank=True
)
# ... other code ...
def save(self, *args, **kwargs):
if (self.agent):
try:
self.agent.closing_success_rate = self.get_agent_closing_success_rate()
except Exception as e:
print(e)
Когда нет Agent
, подключенного к сделке, я получаю ошибку:
" У объекта 'NoneType' нет атрибута 'closing_success_rate'"
Как условие if, которое проверяет, существует ли Agent
, проходит только для того, чтобы потом выдать ошибку, потому что оно не существует?