get_object_or_404

Ethan·2024년 1월 17일

Dear

목록 보기
3/13

1. Post.objects.get(id= post_id)

<Dear> 프로젝트에서 기존에 작성된 뷰는 게시글을 불러올 때 Post 모델에서 idpost_id와 일치하는 게시글을 불러왔다.

그러나 post_id와 일치하는 게시글이 없는 경우 에러 페이지를 렌더했다.

이 경우 유저는 잘못된 접근인지, 서버 오류인지를 구분하기가 어려웠다.

2. get_object_or_404()

따라서 모델의 데이터를 불러오고, 해당 데이터가 없는 경우에는 404 에러를 불러오는 get_object_or_404를 알아본다.

우선 장고 숏컷 모듈에서 해당 함수를 불러온다.


from django.shortcuts import get_object_or_404

이후 기존에 사용했던 Post.objects.get(id = post_id)를 변경한다. 그리고 변수 post에 지정한다.

파라미터에는 참조할 모델 클래스(Post)와 조건(id=post_id)을 인자로 넘겨준다.


post = get_object_or_404(Post, id = post_id)

이 경우 post_id와 일치하는 id를 가진 데이터를 Post 모델에서 찾아보고

해당 데이터가 있다면 변수 post에 지정하지만

해당 데이터가 없다면 404 에러를 불러온다.

profile
글로 쓰면 머리 속에 정리가 되...나?

0개의 댓글