티스토리 뷰

Web/Django

[Django] get_object_or_404

HAN_PY 2020. 7. 22. 22:11
반응형

 

article = Article.objects.get(pk=pk)

에서 get의 의미는 단 하나만 가능하다는 뜻이다.

값이 없는 경우 ERROR => 100이라는 pk값이 들어왔을 때, DB에 100이 없으면 ERROR가 뜬다.

값이 여러개인 경우 ERROR

즉, DB에 있는 단 하나의 값이 들어와야 에러가 안뜬다.

 

위방식의 문제점과 사용이유

100이라는 pk 값이 들어오는 경우에

500오류라고 개발자 오류라고 ERROR가 발생한다.

하지만 사용자가 없어서 100번째 글이 아직 안 적혀서 뜨는거지 나의 잘못이라고 할 수 없다.

즉, url이 없어서 그런거다. 개발자 잘못이 아니라는 점을 표현하고 싶어서 get_object_or_404를 쓴다.

 

 

쓰는법

+ DJango shortcut functions 공식문서 참고

from django.shortcuts import render, redirect, get_object_or_404

article = get_object_or_404(Article, pk=pk)

 

object를 가져오거나 404를 가져오겠다는 말이다. 즉, 없는 url를 보낸 경우를 알 수 있다.

왼쪽 pk       -    함수 호출 시 이 키워드 인자로 넘기겠다는 말이다

오른쪽 pk    -    views의 def detail(request, pk)의 pk이다

반응형

'Web > Django' 카테고리의 다른 글

[Django] 분기  (31) 2020.07.24
[Django] admin.py  (0) 2020.07.22
[Django]forms.html (create.html+update.html)  (0) 2020.07.22
[Django] API  (108) 2020.07.20
[Django] CRUD_DELETE  (0) 2020.07.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함