Проверка на наличие внешнего ключа foreign key. Ошибка DoesNotExist
8 октября 2014 г. 13:28
Если проверить наличие внешнего ключа поля ForeignKey
у экземпляра модели, которая не имеет этот внешний ключ, то выйдет ошибка: DoesNotExist
, так как у модели нет этого атрибута. Это не тот случай, когда модель имеет атрибут, но его значение None
, поэтому нам выводится ошибка, что атрибут не найден.
Допустим имеется класс Person
, содержащий поле school
, которое является внешним ключом класса School
.
Пусть в базе данных существует person
с id=1
без school
:
person = Person.objects.get(id=1) if person.school: # to do something
Получим DoesNotExist
.
Используя встроенную функцию hasattr(obj, 'field')
, получим False, если в БД отсутствует связь с другой таблицей:
person = Person.objects.get(id=1) if hasattr(person, 'school'): # to do something
Теперь ошибки не будет.
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 2
07.05.2022 18:12 #
привет
Ответить
17.07.2022 16:59 #
Привет, гость!)))
Ответить