본문 바로가기

[내일배움캠프]스파르타코딩클럽 AI 웹개발/Today I Learned

[TIL]

검색 기능 구현

 

view

def search(request):
    search_word = request.GET.get("search_word")
    article_list = Article.objects.filter(
        Q(title__icontains=search_word) |
        Q(content__icontains=search_word) |
        Q(author__username__icontains=search_word)

    ).distinct()

    context = {
        "search_word": search_word,
        "article_list": article_list,
    }

    return render(request, "products/search.html", context)

 

대소문자 구분 안하고 해당 단어를 포함한다면 검색어 걸리도록 함.

distinct를 주어 중복을 제거

 

 

 

template

 

{% extends 'base.html' %}

{% block content %}

    <h1>{{ search_word }}로 검색한 결과</h1>

    {% for article in article_list %}
    	<p><a href="{% url 'products:product_detail' article.pk %}">{{ article.title }}</a></p>
    {% endfor %}

{% endblock content %}

 

 


 

 

'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글

[TIL] DRF class based view  (0) 2024.08.29
[TIL] annotate  (0) 2024.08.27
[TIL]  (0) 2024.08.25
[TIL] models.py 코드 리팩토링  (0) 2024.08.22
[TIL]  (0) 2024.08.21