国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

django rest framework使用django-filter用法

瀏覽:102日期:2024-09-26 09:56:11

django rest framework使用django-filter注意事項(xiàng):

一定要在setting文件里面加載如下代碼,而不是只安裝包,否則django應(yīng)用不報(bào)錯(cuò),但是不能正確過(guò)濾。

“`INSTALLED_APPS = [‘django_filters’]REST_FRAMEWORK = {‘DEFAULT_FILTER_BACKENDS’: ( ‘django_filters.rest_framework.DjangoFilterBackend’,),}

補(bǔ)充知識(shí):rest_framework--filters和django-filters混合使用-過(guò)濾搜索

view

from rest_framework.pagination import PageNumberPaginationfrom rest_framework import mixinsfrom rest_framework import viewsetsfrom rest_framework import filtersfrom django_filters.rest_framework import DjangoFilterBackendfrom .models import Goodsfrom .serializers import GoodsSerializer# 導(dǎo)入過(guò)濾器類from .filters import GoodsFilterclass GoodsPagination(PageNumberPagination): page_size = 10 page_size_query_param = 'page_size' page_query_param = 'p' max_page_size = 100class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): # 指定queryset queryset = Goods.objects.all() # 指定序列化類 serializer_class = GoodsSerializer # 指定分頁(yè)類 pagination_class = GoodsPagination # 添加過(guò)濾器 這里可以吧django-filter過(guò)濾器添加進(jìn)來(lái) 和 rest_framework的filters添加進(jìn)來(lái)一起用, 也可以單個(gè)用, 看你的需求 filter_backends = [DjangoFilterBackend, filters.SearchFilter] # 只需要簡(jiǎn)單的基于等同的過(guò)濾,則可以filter_fields在視圖或視圖集上設(shè)置屬性,列出要過(guò)濾的字段集。 # 等同就是根據(jù)你過(guò)濾的字段的數(shù)據(jù)必須跟數(shù)據(jù)庫(kù)里那個(gè)字段的數(shù)據(jù)相同 # filter_fields = [’name’, ’shop_price’] # 指定過(guò)濾器類 filter_class = GoodsFilter search_fields = [’name’, ’goods_brief’, 'goods_desc']

過(guò)濾器類?根據(jù)自己需求定義

import django_filtersfrom .models import Goodsclass GoodsFilter(django_filters.rest_framework.FilterSet): ''' 商品的過(guò)濾類 ''' # 大于這個(gè)值 name指定字段 lookup_expr過(guò)濾條件 # NumberFilter 數(shù)字類型 price_min = django_filters.NumberFilter(name='shop_price', lookup_expr='gte') # 小于這個(gè)值 price_max = django_filters.NumberFilter(name='shop_price', lookup_expr='lte') # name模糊查詢, 不指定過(guò)濾條件, 必須全部匹配 # CharFilter字符串類型 name = django_filters.CharFilter(name='name', lookup_expr='icontains') class Meta: # 指定模型類 model = Goods # 顯示這兩個(gè)字段 fields = ['price_min', 'price_max', 'name']

settings

INSTALLED_APPS = [ # drf過(guò)濾器 也 是xadmin的過(guò)濾器 ’django_filters’, ’rest_framework’,]

url

from django.conf.urls import url, includefrom rest_framework.routers import DefaultRouterfrom goods.views import GoodsListViewSet# 生成一個(gè)注冊(cè)器實(shí)例對(duì)象router = DefaultRouter()# 將需要自動(dòng)生成url的接口注冊(cè)# 配置goods的urlrouter.register(r’goods’, GoodsListViewSet, base_name='goods-list')urlpatterns = [ # 自動(dòng)生成url url(r'^', include(router.urls)),]

效果圖

django rest framework使用django-filter用法

以上這篇django rest framework使用django-filter用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 精品久久久中文字幕二区 | 最新国产中文字幕 | 毛色毛片免费观看 | 国产免费久久精品 | 成人在线毛片 | 国产日韩不卡免费精品视频 | 黄页网站18以下禁止观看 | 日本乱人伦片中文字幕三区 | 91精品国产福利尤物免费 | 女人精aaaa片一级毛片女女 | 欧洲成人r片在线观看 | 九九视频精品全部免费播放 | 玖草| 在线观看日韩www视频免费 | 欧美日本一区二区三区 | 久久99亚洲精品一区二区 | 成人网视频免费播放 | 美女的让男人桶到爽软件 | 日美三级 | 欧美又粗又硬又大久久久 | 久久夜色精品国产噜噜亚洲a | 香蕉久久成人网 | 中文字幕在线看视频一区二区三区 | 国内自产拍自a免费毛片 | 高清性色生活片欧美在线 | 国产欧美日韩在线观看 | 黄毛片一级毛片 | 手机看片国产欧美日韩高清 | 国产4tube在线播放 | 亚洲国产成人九九综合 | 国产精品99精品久久免费 | 免费久久 | 老师张开腿让我爽了一夜视频 | 国产成人精品久久综合 | 国产人成亚洲第一网站在线播放 | 国产韩国精品一区二区三区 | 国产精品18久久久久网站 | 亚欧在线一线 | 欧美一级特黄特色大片 | 欧美一级在线全免费 | 日韩美女免费线视频 |