Django/orm

검색 기능 splite기능 annotate만들어서 사용

두잇 두두 2024. 1. 2. 16:03
728x90

검색 기능을 구현 중에 db에 있는 값을 split

from django.db.models import Func, CharField
class StripWhitespace(Func):
    function = 'REGEXP_REPLACE'
    template = "%(function)s(%(expressions)s, '\\s', '', 'g')"
    output_field = CharField()
proposals = proposals.annotate(
                stripped_name=StripWhitespace('name')
                )
            proposals = proposals.filter(stripped_name__icontains=keyword)

annotate시 만들어둔 클래스를 통해서 name을 쪼개 비교