하루일문

[django] 검색을 해보자 본문

django

[django] 검색을 해보자

support_u 2023. 4. 27. 00:45

검색할 수 있는 url을 만든다

urls.py

path('search/', views.search, name='search'),

 

검색할 views.py를 만든다

# Q는 여러 인자를 가져올수있게 해줌
from django.db.models import Q

def search(request):
	# input을 q로 설정 query는 그냥 이름일 뿐 의미 X
    query = request.GET.get('q', '')
    if query:
        search = Balance.objects.filter(
        	# icontains 겹치는 단어가 있다면 or username은 정확히 겹치게
            Q(title__icontains=query)|
            Q(user__username__exact=query)
        )
    else:
        search = Balance.objects.all()[::-1]
    return render(request, 'balances/index.html', {'balances':search})

html

        <form action='{% url 'balances:search' %}' role="search">
        	# name='q'로 search할 수 있게 도와줌
          <input type="search" placeholder="Search" aria-label="Search" name='q'>
          <button class="btn btn-outline-warning" type="submit">Search</button>
        </form>