본문 바로가기
Python/Django

[django] 404인 경우 실행할 내용 지정

by zenna 2022. 5. 31.
728x90

python에서 get_objects_or_404 로 데이터를 받아온 경우,
해당하는 데이터가 없으면 404페이지가 떠버립니다. 
이 경우 실행할 내용을 지정하기 위해 처리해보겠습니다 ^0^

 

기본 get_list_or_404 를 사용해 아래처럼 코드를 사용했을 때, 해당하는 데이터가 없으면 아래처럼 에러가 뜹니다. 

dietlist = get_list_or_404(테이블이름, user_id=idx, date=date)

그런데 만약 데이터가 종종 없다면? 

데이터가 없는 게 비정상적인 일이 아니라면 추가로 실행할 내용을 지정해 줘야 합니다. 

이 경우 get_objects_or_404 를 사용하게 되면 추가 실행 내용을 지정해줄 수 없어요.

 

대신 아래처럼 변경해주면 됩니다.

dietlist = 테이블.objects.filter(user_id=idx, date=date) #괄호 안의 내용은 필터를 걸 조건
	#별도로 필터가 필요 없는 경우 괄호 안은 공란 가능
    
if dietlist.exists(): # 정보가 있을 경우
    실행할 내용 지정
else : # 정보가 없을 경우
    실행할 내용 지정

저는 else구문으로 들어왔을 경우 html 경로를 찾아가도록 설정해줬습니다. 

뾰롱. 같은 페이지인데 지정한 html이 정상적으로 출력되는 모습을 확인할 수 있습니다. 

데이터가 있을 경우에는

위 화면처럼 처리한 데이터를 기반으로 화면을 표시하게 됩니다. 

오늘은 여기까지!

728x90

댓글