django rest 프레임워크 필터

5850 단어 djangoPython
하나 이상의 필드에 검색 키워드가 포함되어 있습니다. 기본적으로 검색 매개 변수는 '검색' 으로 명명되지만, SEARCHPARAM 설정 덮어쓰기.The search behavior may be restricted by prepending various characters to the search_fields. 검색에서fields에 검색 행위를 제한하는 문자를 추가합니다. '^': xx 문자열로 '=' 검색을 시작합니다. '@': 전체 텍스트 검색 (현재 Django의 MySQL 백엔드만 지원) '$': 정규 표현식 검색
사용 예: 정확한 비즈니스 일치id 필드self.search_fields = [‘project_name’, ‘=business_id’]
 ‘’‘
 1、  
 
               
 http://127.0.0.1:8000/api/v1/test?search=202005181855000139498
 ’‘’
 def get(self, request):
     result = {'data': '', 'meta': {'msg': 'OK', 'status': 200}}
     try:
         '''
         1、  
                       
         '''
         #   filters
         from rest_framework import filters
         #       
         search_class = filters.SearchFilter()
         #     
         workorder = WorkOrderInfo.objects.all().order_by('id')
         #          ,                ;
         #     ,        ,    ,     
         #          id   business_id   project_name     
         self.search_fields = ['project_name', 'business_id']
         #     
         search_query = search_class.filter_queryset(request, workorder, self)
         #         
         workorder_ser = WorkOrderSerializer(search_query, many=True)
         result['data'] = workorder_ser.data
     except Exception as e:
         print(e)
         result['meta']['msg'] = '      '
         result['meta']['status'] = 500
     return Response(result)

일반적으로 검색과 페이지 나누기 사용

좋은 웹페이지 즐겨찾기