Queryset을 활용한 아주 간단한 필터검색 구현
04 May 2017 | python Django 검색 QuerysetAskDjango 수업을 듣고 중요한 내용을 정리하였습니다.
검색을 위한 form 추가 (template)
<!-- post_list.html -->
<form action="" method="get">
<input type="text" name="q" value="{{ q }}">
<input type="submit" value="검색">
</form>
input text에 따른 필터링 조회처리 (view)
# blog/views.py
from django.shortcuts import render
from .models import Post
def post_list(request):
qs = Post.objects.all()
q = request.GET.get('q', '') # GET request의 인자중에 q 값이 있으면 가져오고, 없으면 빈 문자열 넣기
if q: # q가 있으면
qs = qs.filter(title__icontains=q) # 제목에 q가 포함되어 있는 레코드만 필터링
return render(request, 'blog/post_list.html', {
'post_list' : qs,
'q' : q,
})