404를 반환하지 않고 Django보기에 객체가 존재하는 경우 검증하는 올바른 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/639836

  •  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() 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top