404를 반환하지 않고 Django보기에 객체가 존재하는 경우 검증하는 올바른 방법은 무엇입니까?
-
11-07-2019 - |
문제
객체가 존재하는지 확인하고 객체를 반환 한 다음 해당 수행 작업에 따라 반환해야합니다. 404를 반환하지 않고 그것을하는 올바른 방법은 무엇입니까?
try:
listing = RealEstateListing.objects.get(slug_url = slug)
except:
listing = None
if listing:
해결책
404가 주어지지 않은 경우 404 래퍼를 사용하지 않을 것입니다. 그것은 의도의 오용입니다. 대신 doSnotexist를 잡으십시오.
try:
listing = RealEstateListing.objects.get(slug_url=slug)
except RealEstateListing.DoesNotExist:
listing = None
다른 팁
당신은 또한 할 수 있습니다 :
if not RealEstateListing.objects.filter(slug_url=slug).exists():
# do stuff...
때로는 사용하는 것이 더 명확합니다 try: except:
블록 및 다른 시간은 하나의 라이너입니다 exists()
코드를 더 명확하게 보이게합니다 ... 모두 응용 프로그램 로직에 따라 다릅니다.
listing = RealEstateListing.objects.filter(slug_url=slug).first()
제휴하지 않습니다 StackOverflow