Проверка на наличие внешнего ключа 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 #
Привет, гость!)))
Ответить