Notice
Recent Posts
Link
Tags
- string
- spring security 6
- spring boot
- AWS
- DI
- 스프링부트
- Git
- 스프링
- 문자열
- springboot
- @transactional
- sql
- PYTHON
- 프로그래머스
- spring mvc
- mysql
- 자바
- Docker
- SSL
- select
- session
- Django
- spring
- nginx
- jpa
- 1차원 배열
- ORM
- 데이터베이스
- join
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Archives
개발하는 자몽
[Django / TIL] ORM 쿼리 메서드 filter(), get() 본문
Model.objects.filter()
- 지정된 조건에 해당하는 모든 객체를 포함하는 QuerySet 반환
- 조건에 해당하는 객체가 없는 경우, 에러가 아닌 빈 QuerySet 반환
results = Model.objects.filter(condition)
if not results:
# 쿼리셋이 비어있을 경우, 처리할 로직
Model.objects.filter().values()
- QuerySet에 있는 각 객체의 특정 필드 값을 가져와 딕셔너리 리스트로 반환
- 각 딕셔너리는 선택한 필드를 key로 사용
- 이를 이용하여 쿼리 결과에서 특정 필드만 가져올 수 있음
results = Model.objects.filter(condition).values('field_name')
for result in results:
if 'field_name' not in result:
# 필드 값이 없을 때 처리할 로직
Model.objects.filter().first()
- 지정된 쿼리 조건에 해당하는 첫 번째 객체 반환 (모델 클래스의 단일 객체)
- 조건에 해당하는 객체가 없을 경우, `None` 반환
result = Model.objects.filter(condition).first()
if result is None:
# 처리할 로직
Model.objects.get()
- 지정된 조건에 해당하는 하나의 객체 반환 (모델 클래스의 단일 객체)
- 조건에 해당하는 객체가 없거나 두 개 이상의 객체가 있을 경우, 예외 발생
- `Model.DoesNotExist`
- `Model.MultipleObjectsReturned`
- 따라서 `try-except`를 사용하여 예외 처리를 할 필요가 있음
try:
result = Model.objects.get(condition)
except Model.DoesNotExist:
# 해당 객체가 없을 때 처리할 로직
except Model.MultipleObjectsReturned:
# 여러 개의 객체가 반환될 때 처리할 로직
'Python > Django' 카테고리의 다른 글
[Django] BaseModel (Tracking Model) (0) | 2024.02.09 |
---|---|
[Django] Swagger를 이용한 API Documentation (0) | 2024.01.20 |
[Django] 배포 환경에서 Nginx로 media file 제공하기 on Docker (0) | 2024.01.13 |
[Django] 환경변수 관리 (django-environ) (1) | 2024.01.06 |
[Django] 개발 환경 분리 (1) | 2023.12.30 |
Comments