티스토리 뷰
반응형
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
링크
TAG
- login
- 자료구조
- JavaScript
- TensorFlow
- 클라우데라
- typescript
- DFS
- read_csv
- NextJS
- UserCreationForm
- BFS
- vuejs
- mongoDB
- react
- pandas
- next.config.js
- useState
- django
- logout
- useHistory 안됨
- Express
- Vue
- nextjs autoFocus
- Deque
- 자연어처리
- nodejs
- Queue
- react autoFocus
- error:0308010C:digital envelope routines::unsupported
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함