最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django rest framework使用django-filter用法

 更新時間:2020年07月15日 09:30:19   作者:子如川  
這篇文章主要介紹了django rest framework使用django-filter用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

“`
INSTALLED_APPS = [
‘django_filters'
]

REST_FRAMEWORK = {
‘DEFAULT_FILTER_BACKENDS': ( ‘django_filters.rest_framework.DjangoFilterBackend',
),
}

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

view

from rest_framework.pagination import PageNumberPagination
from rest_framework import mixins
from rest_framework import viewsets
from rest_framework import filters

from django_filters.rest_framework import DjangoFilterBackend

from .models import Goods
from .serializers import GoodsSerializer
# 導(dǎo)入過濾器類
from .filters import GoodsFilter

class GoodsPagination(PageNumberPagination):
  page_size = 10
  page_size_query_param = "page_size"
  page_query_param = "p"
  max_page_size = 100

class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
  # 指定queryset
  queryset = Goods.objects.all()

  # 指定序列化類
  serializer_class = GoodsSerializer

  # 指定分頁類
  pagination_class = GoodsPagination

  # 添加過濾器 這里可以吧django-filter過濾器添加進(jìn)來 和 rest_framework的filters添加進(jìn)來一起用, 也可以單個用, 看你的需求
  filter_backends = [DjangoFilterBackend, filters.SearchFilter]

  # 只需要簡單的基于等同的過濾,則可以filter_fields在視圖或視圖集上設(shè)置屬性,列出要過濾的字段集。
  # 等同就是根據(jù)你過濾的字段的數(shù)據(jù)必須跟數(shù)據(jù)庫里那個字段的數(shù)據(jù)相同
  # filter_fields = ['name', 'shop_price']

  # 指定過濾器類
  filter_class = GoodsFilter

  search_fields = ['name', 'goods_brief', "goods_desc"]

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

import django_filters

from .models import Goods

class GoodsFilter(django_filters.rest_framework.FilterSet):
  """
  商品的過濾類
  """

  # 大于這個值 name指定字段 lookup_expr過濾條件
  # NumberFilter 數(shù)字類型
  price_min = django_filters.NumberFilter(name="shop_price", lookup_expr="gte")
  # 小于這個值
  price_max = django_filters.NumberFilter(name="shop_price", lookup_expr="lte")

  # name模糊查詢, 不指定過濾條件, 必須全部匹配
  # CharFilter字符串類型
  name = django_filters.CharFilter(name="name", lookup_expr="icontains")

  class Meta:
    # 指定模型類
    model = Goods
    # 顯示這兩個字段
    fields = ["price_min", "price_max", "name"]

settings

INSTALLED_APPS = [
  # drf過濾器 也 是xadmin的過濾器
  'django_filters',
  'rest_framework',
]

url

from django.conf.urls import url, include

from rest_framework.routers import DefaultRouter

from goods.views import GoodsListViewSet
# 生成一個注冊器實(shí)例對象
router = DefaultRouter()
# 將需要自動生成url的接口注冊
# 配置goods的url
router.register(r'goods', GoodsListViewSet, base_name="goods-list")

urlpatterns = [
  # 自動生成url
  url(r"^", include(router.urls)),
]

效果圖

以上這篇django rest framework使用django-filter用法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何利用Python解析超大的json數(shù)據(jù)(GB級別)

    如何利用Python解析超大的json數(shù)據(jù)(GB級別)

    果不想從頭開始創(chuàng)建數(shù)據(jù)格式來存儲數(shù)據(jù),JSON是一個不錯的選擇,下面這篇文章主要給大家介紹了關(guān)于如何利用Python解析超大的json數(shù)據(jù)(GB級別)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • python對接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送

    python對接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送

    在本篇文章里小編給大家分享的是關(guān)于python對接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送功能,需要的朋友們可以參考下。
    2020-05-05
  • python基礎(chǔ)學(xué)習(xí)之生成器與文件系統(tǒng)知識總結(jié)

    python基礎(chǔ)學(xué)習(xí)之生成器與文件系統(tǒng)知識總結(jié)

    本文是參考《python數(shù)據(jù)分析》的附錄對生成器和文件系統(tǒng)結(jié)合案例的一個簡單回顧,文中對python生成器與文件系統(tǒng)作了非常詳細(xì)的介紹,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python實(shí)現(xiàn)FIFO緩存置換算法

    Python實(shí)現(xiàn)FIFO緩存置換算法

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)FIFO(先進(jìn)先出)緩存置換算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python實(shí)現(xiàn)病毒仿真器的方法示例(附demo)

    Python實(shí)現(xiàn)病毒仿真器的方法示例(附demo)

    這篇文章主要介紹了Python實(shí)現(xiàn)病毒仿真器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 在Python的Django框架中simple-todo工具的簡單使用

    在Python的Django框架中simple-todo工具的簡單使用

    這篇文章主要介紹了在Python的Django框架中simple-todo工具的簡單使用,該工具基于原web.py中的開源項(xiàng)目,需要的朋友可以參考下
    2015-05-05
  • 詳解python百行有效代碼實(shí)現(xiàn)漢諾塔小游戲(簡約版)

    詳解python百行有效代碼實(shí)現(xiàn)漢諾塔小游戲(簡約版)

    這篇文章主要介紹了詳解python百行有效代碼實(shí)現(xiàn)漢諾塔小游戲(簡約版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 在django中使用post方法時,需要增加csrftoken的例子

    在django中使用post方法時,需要增加csrftoken的例子

    這篇文章主要介紹了在django中使用post方法時,需要增加csrftoken的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 關(guān)于Python中模塊的簡介、定義與使用

    關(guān)于Python中模塊的簡介、定義與使用

    這篇文章主要介紹了關(guān)于Python中模塊的簡介、定義與使用,模塊是Python的重要組成部分,需要的朋友可以參考下
    2023-04-04
  • 一文帶你搞懂Python中isinstance和type的區(qū)別

    一文帶你搞懂Python中isinstance和type的區(qū)別

    在Python中,我們經(jīng)常需要檢查一個對象的類型,Python提供了兩種方法來獲取對象的類型:isinstance和type,這兩種方法有什么區(qū)別呢,本文將詳細(xì)介紹這兩種方法的區(qū)別和使用,需要的朋友可以參考下
    2023-06-06

最新評論

连州市| 胶南市| 新泰市| 临朐县| 延长县| 吉隆县| 徐州市| 镇赉县| 定西市| 新乐市| 手游| 边坝县| 梨树县| 芮城县| 大安市| 阿图什市| 临安市| 宣武区| 湛江市| 奉化市| 临泽县| 驻马店市| 林口县| 民勤县| 永新县| 饶河县| 平凉市| 黑龙江省| 玉门市| 长兴县| 安岳县| 土默特左旗| 江山市| 宣汉县| 阳高县| 龙川县| 台东市| 保靖县| 浮山县| 南充市| 无极县|