반응형
관련 객체가 존재하는지 장고 확인 오류 : RelatedObjectDoesNotExist
has_related_object
내 모델에 관련 개체가 있는지 확인해야하는 메서드 가 있습니다.
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")
하지만 오류가 발생합니다.
Business.has_related_object ()
RelatedObjectDoesNotExist : 비즈니스에 고객이 없습니다.
ORM이 customer
존재 하는지 확인하기 위해 데이터베이스로 이동해야하기 때문 입니다. 존재하지 않기 때문에 예외가 발생합니다.
방법을 다음과 같이 변경해야합니다.
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)
상황을 잘 모르기 self.car
때문에 필요한 경우 조정하도록 맡기겠습니다.
사이드 참고 :에이 일을한다면 Model
를 가지 ForeignKeyField
거나 OneToOneField
그 위에, 당신은 데이터베이스 쿼리를 피하기 위해 바로 가기로 다음을 수행 할 수있을 것입니다.
def has_business(self):
return self.business_id is not None
Django 문서에서 권장hasattr(self, 'customers')
하는 예외 검사를 피하기 위해 사용하십시오 .
def has_related_object(self):
return hasattr(self, 'customers') and self.car is not None
반응형
'Programing' 카테고리의 다른 글
컴파일 오류-zlib.h 누락 (0) | 2020.12.14 |
---|---|
UITableView는 반투명 탐색 모음 아래에 있습니다. (0) | 2020.12.14 |
UITextView에서 줄 높이 설정 (0) | 2020.12.14 |
Locale :: getDefault ()를 고려하여 DateTime 개체 서식 지정 (0) | 2020.12.14 |
-Wait 대신 Start-Process 및 WaitForExit를 사용하여 ExitCode 얻기 (0) | 2020.12.14 |