본문 바로가기

Filter7

Django - models 명령문 (filter, exclude, order_by, __lte) Django - models 명령문 #1 filter 여기서 __를 두번해주는 이유는 “쿼리셋”으로부터 끌어오는 명령이기때문에 이렇게 해주는 것이고 icontains는 대소문자를 가리지 않고 검색해준다는 의미다. Post.objects.all().filter(message__icontains='123') filter의 반대는 exclude이다. #2 order_by 정렬 기준이다. Post.objects.all().order_by(‘조건’) 이런식으로 사용한다 보통은 #3 __lte lte시리즈는 몇가지가 있는데 1)lte(less then equal) 작거나 같다 2)lt(less then) 작다 3)gte(greater then equal) 크거나 같다 4)gt(greater then) 크다 예시 코.. 2023. 1. 9.
django - models를 통한 조회 중 filter 인자로 double underlines # models를 통한 조회 models, shell에서 조회할때 (최소한에 내가 아는 선에서는) Post.objects.all()이라고 쓰이는 경우가 많다. Post라는 클래스가 가진 모든 데이터 값을 쿼리셋으로 조회하는 명령어다. Post.objects.all().filter() #1 인자 기본 설명 이렇게 하게되면 필터링을 하는 것인데 ()안의 인자는 필드명__필드명에 관련된 오퍼레이션 = '필터링원하는글씨등' 바로 위의 오퍼레이션에 관해서는 필드의 타입에 따라서도 쓰이는게 달라지기 때문에 공식문서를 참조하는 것이 좋다. #2 인자 활용법 x='가', y='나' 라고 했을때는 and 조건이다. x는 가여야하면서 y가 나인것을 filter 해주는 것이다. 2022. 12. 13.
Python - filter에 or조건과 and 조건(python식 sql) 부분적으로는 분명 아는 개념들인데, 이것들이 하나가 되었을때 비로소 힘을 발하는 구조에 대해서 이런 구조는 못본 것 같다. 거두절미하고 #1 or 조건 from django.db.models import Q Book.objects.filter(Q(rating__lt=3)| Q(is_bestselling=True)) 터미널에서 python shell을 실행한 후에 첫째줄을 실행하여 Q를 import해주고 두번째 조건문으로 조회를 하고자 했다. 이 or 조건은 rating이 3보다 작거나 베스트셀링이 True인 값들을 필터링하여 리턴해준다. 정말 python식 sql같다. #2-1 or조건에 and 조건을 붙인 것 from django.db.models import Q Book.objects.filter(Q.. 2022. 11. 27.
Python - (filter lookup) shell 사용에 있어서 rating filter 확인 방법 (>=<비교 등호 사용) django를 사용하며 터미널에 python manage.py shell 을 사용하여서 shell 명령문을 입력하는데 모두 가능했지만, 불가능했던 filter가 있어서 소개하고자 한다. 보통 app단위의 models.py에 모델을 class로 정의해 놓고 나면 class이름.objects.filter(조건) 으로 입력하면 모두 나왔다. 하지만 평점에 해당하는 rating은 안나오더라. 근본적인 "왜 안되는가"에 대한 이유는 잘 모르겠다. 하지만 어떻게 표현을 할 수있는가는 알게되었다. #1 나는 분명 models.py에 class를 넣을때 그 안에 rating도 정의해 주었다. 착각이 아닌게, 일부러 저장여부도 확인하고 models.py를 틀어놓고 확인하며 진행했다. 하지만 Book이라는 class에 대.. 2022. 11. 27.