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