• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
谢城
博客园    首页    新随笔    联系   管理    订阅  订阅

django中时间区间过滤,排序

1.过滤下载
pip install django-filter

2.下载后注册
INSTALLED_APPS=['django_filters',]

3.导入rest_framework
from django_filters import rest_framework

class DoctorsFilter(rest_framework.FilterSet):
    authentication_classes = [TokenAuthentication]
    #开始时间
    start_date = rest_framework.DateFilter(field_name='start_date', lookup_expr='gte')
    #结束时间
    end_date = rest_framework.DateFilter(field_name='end_date', lookup_expr='lte')


4.在类中的使用
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.viewsets import ModelViewSet
class DoctorsViewSet(ModelViewSet): filter_backends = [DjangoFilterBackend] #过滤其他的字段 filter_fields = ('id', 'patient', 'doc_type',)
#指向要过滤的类 filter_class
= DoctorsFilter

 2.排序

#1.导入OrderingFilter
from rest_framework.filters import OrderingFilter

#2.在类中的使用
class CarsModelViewSet(ModelViewSet):
    
            queryset =models的类
            serializer_class=序列化组件
         filter_backends = [OrderingFilter]
        #/api/cars/?ordering=-id 倒序
   #/api/cars/?ordering=id 正序
ordering_fields = ('id', )
posted @ 2020-02-22 13:19  谢城  阅读(2026)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3