Metadata-Version: 1.2
Name: drf-complex-filter
Version: 0.1.2
Summary: DRF filter for complex queries.
Home-page: https://github.com/kit-oz/drf-complex-filter
Author: Nikita Balobanov
Author-email: kit-oz@ya.ru
License: MIT
Description: ====================================
        Django Rest Framework Complex Filter
        ====================================
        
        DRF filter for complex queries
        
        Installing
        ----------
        
        For installing use ``pip``
        
        ::
        
            $ pip install drf-complex-filter
        
        Usage
        -----
        
        Add ``ComplexQueryFilter`` to ``filter_backends``:
        
        ::
        
          from drf_complex_filter.filters import ComplexQueryFilter
        
        
          class UserViewSet(ModelViewSet):
              queryset = User.objects.all()
              serializer_class = UserSerializer
              filter_backends = [ComplexQueryFilter]
        
        
        
        And get some records
        
        ::
        
          GET /users?filters={"type":"operator","data":{"attribute":"first_name","operator":"=","value":"John"}}
        
        Filter operator
        ---------------
        
        Operator may be one of three types
        
        ::
        
          {
            "type": "operator",
            "data": {
              "attribute": "field_name",
              "operator": "one_of_lookup_operators",
              "value": "value_for_compare",
            }
          }
        
        
        ::
        
          {
            "type": "and",
            "data": []
          }
        
        
        ::
        
          {
            "type": "or",
            "data": []
          }
        
        
        
        
        Lookup operators
        ----------------
        
        =============================  ==============
        Operator label                 Query operator
        =============================  ==============
        Is                             =
        Is not                         !=
        Greater                        >
        Greater than or is             >=
        Less                           <
        Less than or is                <=
        Case-insensitive contains      \*
        Case-insensitive not contains  !
        Case-sensitive contains        cnt
        Case-sensitive not contains    ncnt
        =============================  ==============
        
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.6
