首页 > 其他分享 >DRF之过滤与排序

DRF之过滤与排序

时间:2023-05-04 09:45:41浏览次数:27  
标签:ListAPIView rest django framework 过滤 import 排序 class DRF

过滤组件

基于django内置的过滤组

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.generics import ListAPIView
需继承generics
class BooksGenericListApiView(ListAPIView): authentication_classes = [] queryset = models.Book.objects.all() serializer_class = BookModelSerializer filter_backends = [DjangoFilterBackend]
  定义过滤器
    filterset_fields=['title','addr']
  定义过滤方式和字段

路由
http://127.0.0.1:8000/b2oks/?price=46&addr=建德

 

排序组件

这个需要借用django_filter   pip install 即可

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter
from rest_framework.generics import ListAPIView
class BooksGenericListApiView(ListAPIView):
    authentication_classes = []
    queryset = models.Book.objects.all()
    serializer_class = BookModelSerializer
    filter_backends = [DjangoFilterBackend,OrderingFilter]
    filterset_fields=['title','addr']

    ordering_fields=['price','id']
  ordering_param = 'sort'
  这个属性不好使
路由
http://127.0.0.1:8000/b2oks/?ordering=-id

 

标签:ListAPIView,rest,django,framework,过滤,import,排序,class,DRF
From: https://www.cnblogs.com/so-shuai/p/17370161.html

相关文章

  • 【DRF】0. 前后端分离
    前后端不分离的工作流程:提出需求前端页面开发翻译成模板前后端对接集成遇到问题前端返工后端返工二次集成集成成功交付上线前后端分离提出需求约定接口规范数据格式前后端并行开发前后端对接前端调试效果集成成功交付上线定义规范后端自测前端mock数据......
  • 【DRF】1. DRF配置
    INSTALLED_APPS中增加"rest_framework",'rest_framework.authtoken',settings.py中REST_FRAMEWORK={'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.Page'PAGE_SIZE':50,'DATETIME_FORMAT�......
  • 【DRF】4. DRF视图开发RESTful API接口
    四种方式:函数式编程:functionbasedview类视图:classedbasedview通用类视图:genericclassedbasedviewDRF的视图集Viewsets原生DjangoFBV(Funcitonbasedview)编写,应用的views.pyimportjsonfromdjango.httpimportJsonResponsefromdjango.views.decorators.csr......
  • 直播软件搭建,全局过滤器(时间,年月日,一千加逗号处理)
    直播软件搭建,全局过滤器(时间,年月日,一千加逗号处理)步骤一:处理数据 exportconstformatYmd=(date)=>{ lettime=newDate(date)  lety=time.getFullYear() letm=time.getMonth()+1 letd=time.getDate()  return[y,m,d].map((v)=>String(v).pa......
  • SpringSecurity过滤器之UsernamePasswordAuthenticationFilter
    UsernamePasswordAuthenticationFilter处理表单登录及认证。AbstractAuthenticationProcessingFilter#doFilterprivatevoiddoFilter(HttpServletRequestrequest,HttpServletResponseresponse,FilterChainchain) throwsIOException,ServletException{ if(!requires......
  • c#归并排序
    voidMergeSort(int[]arr){intl=0;intr=arr.Length-1;MergeSortSub(arr,l,r);}//1,2voidMergeSortSub(int[]arr,intleft,intright){if(left==right)return;intmid=left+((right-left)>>1);MergeSortSub(arr......
  • 拓展必学1.1 常见排序方法
    今天遇到了需要排序的题目,我们已知的就是用已有的算法进行排序,也就是使用Arrays.sort(nums[]),这个算法本质是快排,在算法比赛的时候可以使用,但是如果需要手撕代码就不可以了,所以我们需要积累常见的数组排序方法。一、冒泡排序(改进版)基本思想:   冒泡排序(BubbleSort)是一种简......
  • Hemberg-lab单细胞转录组数据分析(九)- Scater包单细胞过滤
    细胞质控文库大小查看每个样品(细胞)检测到的总分子数(UMIcount)或总reads数(readscount),拥有很少的reads或分子数的样品可能是细胞破损或捕获失败,应该移除。hist(umi$total_counts,breaks=100)abline(v=25000,col="red")练习:我们的过滤移除了多少细胞?每个细......
  • 排序_插入排序
    letArray=[36,34,334,45,233,544,87];//太麻烦而且交换的过程写的不对//console.log(insertSort(Array));//functioninsertSort(Array){//console.log(1);//leted=Array[0];//for(leti=1;i<Array.length;i++){//for(letj=1;j<i;j++){//......
  • SpringSecurity过滤器之LogoutFilter
    LogoutFilter用于注销登录。privatevoiddoFilter(HttpServletRequestrequest,HttpServletResponseresponse,FilterChainchain) throwsIOException,ServletException{ if(requiresLogout(request,response)){ Authenticationauth=SecurityContextHolder.getC......