Python 3.x 如何使用库Django RQL过滤类型为';时间';在Django Rest框架中?

Python 3.x 如何使用库Django RQL过滤类型为';时间';在Django Rest框架中?,python-3.x,django,django-rest-framework,filtering,Python 3.x,Django,Django Rest Framework,Filtering,我想在我的字段“hora”中的RESTAPI中使用过滤器,但您的类型是时间。当我尝试执行查询时,例如:127.0.0.1:8000/api/v1/queimadas/?hora=17:15:33,错误显示:“RQL解析错误。” 我的任务是以不同的时间筛选此字段“hora”,例如:url中的?ge(hora,17:00:00)和le(hora,20:00:00)(遵循文档),但我不能:( 非常感谢大家 这是django rql库的文档- My serializers.py: class Queim

我想在我的字段“hora”中的RESTAPI中使用过滤器,但您的类型是时间。当我尝试执行查询时,例如:127.0.0.1:8000/api/v1/queimadas/?hora=17:15:33,错误显示:“RQL解析错误。”

我的任务是以不同的时间筛选此字段“hora”,例如:url中的?ge(hora,17:00:00)和le(hora,20:00:00)(遵循文档),但我不能:(

非常感谢大家

这是django rql库的文档-

My serializers.py:

class QueimadaSerializer(serializers.ModelSerializer):
    satelite = SateliteSerializer(many=False,read_only=True)
    cidade = CidadeSerializer(many=False,read_only=True)
    class Meta:
        model = Queimada
        fields = [
        'id',
        'latitude' ,
        'longitude', 
        'data',
        'hora' ,
        'observacao',
        'veracidade', 
        'visitado',
        'satelite', 
        'cidade' 
        ]
My views.py:

class QueimadasViewSet(viewsets.ModelViewSet):
    queryset = Queimada.objects.all()
    serializer_class = QueimadaSerializer
    filter_backends = (RQLFilterBackend,)
    rql_filter_class = QueimadaFilters


    @action(detail=True,methods=['get'])
    def satelite(self,request,pk=None):
        satelite = Satelite.objects.filter(queimada__id=pk)
        self.pagination_class.page_size = 10
        page = self.paginate_queryset(satelite)
   
        if page is not None:
            serializer = SateliteSerializer(page, many=True)
            return self.get_paginated_response(serializer.data)
        serializer = SateliteSerializer(satelite, many=True)
        return Response(serializer.data)
My filters.py:

class QueimadaFilters(RQLFilterClass):
    MODEL = Queimada
    SELECT = True
    FILTERS = (
    {
        'namespace' : 'cidade',
        'filters':('id','nome'),
        'qs' : SelectRelated('cidade'),

    },
    {
        'filter': 'data',

    },
    {
        'filter': 'hora',
        'custom': True,
        'lookups': {
            FilterLookups.EQ,
            FilterLookups.IN, 
            FilterLookups.I_LIKE,
            FilterLookups.LE,
            FilterLookups.LT,
            FilterLookups.GE, 
            FilterLookups.GT
        },
    },
)
我建议您使用。它很容易使用。

这可能会有所帮助

from rest_framework import filters

class UserListView(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    filter_backends = [filters.SearchFilter]
    search_fields = ['username', 'email']

安装django过滤器 并在settings.py文件中声明它,非常简单