django rest framework 过滤 lim分页
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                django rest framework 过滤 lim分页
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                一.過濾
1.首先引用diango 自帶的過濾配置
2.導入模塊
from django_filters.rest_framework import DjangoFilterBackend from django_filters import rest_framework as filters3.一種簡單的過濾:
class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)filter_fields = ('title', 'price')通過在瀏覽器后面帶上?price=100, 就可以精確過濾
?
自定義過濾
通過自己創建的過濾類來實現自定義過濾
class ProductFilter(filters.FilterSet):# 最小min_price = filters.NumberFilter(field_name="price", lookup_expr="gte")# 最大max_price = filters.NumberFilter(field_name="price", lookup_expr="lte")# 包含name = filters.CharFilter(field_name="title", lookup_expr="icontains")# 通過?字段自定義過濾class Meta:model = Bookfields = ["min_price", "max_price", "name"]BookViews
class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)# 自定義過濾類filter_class = ProductFilter?LimitOffset分頁
引入模塊
from rest_framework.pagination import LimitOffsetPagination?
輸入代碼
class P1(LimitOffsetPagination):max_limit = 3default_limit = 2# 從offset開始訪問的下幾個limit_query_param = "limit"# 定義從表中的offset開始計算offset_query_param = "offset"class IndexView2(APIView):def get(self, request, *args, **kwargs):user_list = Book.objects.all()p1=P1()page_user_list = p1.paginate_queryset(queryset=user_list, request=request, view=self)print("打印的數據", page_user_list)ser = BookSerializer(instance=page_user_list, many=True)# return Response(ser.data)# 自帶分頁return p1.get_paginated_response(ser.data)class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)# 自定義過濾類filter_class = ProductFilterfilter_fields = ('title', 'price')# pagination_class = MyPageNumberPagination# authentication_classes = [UserAuth]# permission_classes = [UserPerm]?
轉載于:https://www.cnblogs.com/zhangqing979797/p/10117613.html
總結
以上是生活随笔為你收集整理的django rest framework 过滤 lim分页的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 小米人员架构调整:组建中国区,王川任总裁
 - 下一篇: java B2B2C springmvc