두 가지 조건을 exclude 시 and 연산

2024. 1. 17. 11:21· Django/orm
728x90

exclude안에 두 개의 조건을 넣고 코드를 잘 넣어줬는데도 조건이 먹히지 않는 경우가 발생했다.

.exclude(id__in=OwnerPlace.objects.values_list('place'),
          categories__id=exclude_category.id)

 

.exclude(Q(id__in=OwnerPlace.objects.values_list('place'))
    | Q(categories__id='a78312ef-865e-4e87-ae2c-d761131f4ae5'))

 

exclude는 기본적으로 and 조건으로 여러 조건을 결합하기에, 두 개의 조건을 넣게 되면 두 조건을 만족하는 객체 만이 대상에서 제외 되기 때문에 앞의 현상이 발생했던 것이다.

그래서 밑의 코드와 같이 Q객체를 이용해 or 조건을 생성해서 exclude함수에 전달합니다.

이렇게 되면 두 가지 조건 중 하나를 만족하게 되면 객체를 제외해서 원하는 결과 값을 기대할 수 있습니다.

저작자표시 비영리 (새창열림)

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

Django date range  (0) 2024.02.01
F()  (0) 2024.01.24
len() vs count()  (0) 2024.01.19
검색 기능 splite기능 annotate만들어서 사용  (2) 2024.01.02
Django Model  (0) 2023.12.19
'Django/orm' 카테고리의 다른 글
  • F()
  • len() vs count()
  • 검색 기능 splite기능 annotate만들어서 사용
  • Django Model
두잇 두두
두잇 두두
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
두잇 두두
두두 DB
두잇 두두
전체
오늘
어제
  • 분류 전체보기 (135)
    • CS지식 (7)
    • 시스템 설계 (5)
    • 자료구조&알고리즘 (36)
      • 자료구조 (1)
      • 백준 (13)
      • 프로그래머스 (15)
      • 인프런 (2)
    • Python (9)
      • Docs (3)
      • 실험실 (2)
    • Django (36)
      • orm (10)
      • view (3)
      • model (3)
      • admin (3)
      • restframework (13)
      • error (1)
      • utils (2)
    • Java (2)
      • JPA (3)
    • AI (1)
      • AI가 쓴 글 (1)
    • Git (4)
    • Linux (1)
    • 개발자로써 (8)
      • 회고 (1)
    • 문화생활 (0)
      • 여행 (0)
    • 도서📚 (0)
      • 일반 도서 (0)
      • 개발 도서 (0)
    • 프론트 (1)
      • snippet (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
두잇 두두
두 가지 조건을 exclude 시 and 연산
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.