inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

Queryset을 통한 간단 검색 구현

db에서 모든 데이터가 가져와진 이유

311

준영

작성한 질문수 11

0

def post_list(request):
    qs = Post.objects.all()
    q=request.GET.get('q','') # 'q' 없으면 ''반환
    if q:
        qs = qs.filter(messages__icontains=q)
    return render(request, 'instagram/post_list.html', {
        'post_list':qs,
  })

필터를 통해서 messages에 'q'라는 단어가 들어간 애들만 들어가있는 쿼리셋을 가져오는데 messages에는 '첫번째 내용', '두번째 나용'이잖아요, 근데 어떻게 모든 데이터를 가져올 수 있는건가요?

django docker python react

답변 1

1

이진석

안녕하세요.

검색을 구현할 때, 대개 검색어를 요청 주소 뒤에 붙여서 전달합니다. 요청 주소에서 물음표(?) 뒤에 오는 인자들을 Query String이라고 부릅니다.

네이버에서도 Query String을 통해 검색어를 전달하고 있습니다.

장고 View 함수에서 아래 코드는 요청에서 Query String으로 q 이름의 인자가 있으면 가져와서 q 변수에 저장하고, 없으면 빈 문자열을 q 변수에 저장하는 코드입니다.

q = request.GET.get('q', '')

검색어가 없다면 q 변수에는 빈 문자열이 대입이 되고, 다음 줄의 if 문에서는 거짓(False) 판정이 되어, 다음 줄의 filter 구문이 수행이 되지 않습니다.

if q:
qs = qs.filter(messages__icontains=q)

그러니 검색어가 지정되지 않았을 때에는 filter 가 적용되지 않아서 전체 Rows를 응답하게 되는 것입니다.

안녕하세요.

0

48

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

272

1

useEffect 훅에서 else 유무에 따른 결과

0

211

1

useAxios 훅의 dependency array 설정

0

245

1

useEffect에서 변수 업데이트 관련 질문

0

381

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

266

1

bootstrap4

0

470

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

362

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

572

3

useState는 필수일까요?

0

261

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

596

4

Django allauth를 사용한 소셜 로그인 시 에러

0

654

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

552

2

useLocalStorage() 함수 사용여부

0

228

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

447

1

리듀서의 의미 재확인

0

430

1

simple-jwt Refresh Token 사용 노하우

0

897

2

docker compose 를 통한 배포 관련 오류 문의

0

670

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

364

1

is_like_user

0

233

1

related_name 오류

0

272

1

re_path 오류

0

258

1

re_path url

0

249

1

No post matches the given query

0

659

2