사용자가 검색어를 입력한 경우와 그렇지 않은 때에 따라서 동적 쿼리를 구성하여 데이터를 조회하고자 한다.

Django 뷰 함수에서 구현할 때, 검색어 유무에 따라 filter()의 추가 여부를 깔쌈하게 작성하는 방법을 정리하고자 한다.

 

def search(request):
    type_id = request.query_params.get('type_id')
    state_id = request.query_params.get('state_id')
    user_name = request.query_params.get('user_name')
 
    kwargs = {}
    if type_id:
        kwargs = {'type__id': type_id}
    if state_id:
        kwargs = {'state_id': state_id}
    if user_name:
        kwargs = {'user__name': user_name}
 
    search_result = Item.objects.filter(**kwargs)

 

'Django' 카테고리의 다른 글

Django - time zone  (0) 2022.04.14
Django - simple jwt 적용 (1) XSS, CSRF  (0) 2022.03.16
Django - HTTP Response Redirection  (0) 2022.02.02
Django - @property 사용하기  (0) 2022.01.09
Django - transaction atomic  (0) 2021.12.09

+ Recent posts