欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django rest framework使用django-filter用法

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

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

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

“`
INSTALLED_APPS = [
‘django_filters'
]

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

補(bǔ)充知識(shí):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)來一起用, 也可以單個(gè)用, 看你的需求
  filter_backends = [DjangoFilterBackend, filters.SearchFilter]

  # 只需要簡(jiǎn)單的基于等同的過濾,則可以filter_fields在視圖或視圖集上設(shè)置屬性,列出要過濾的字段集。
  # 等同就是根據(jù)你過濾的字段的數(shù)據(jù)必須跟數(shù)據(jù)庫里那個(gè)字段的數(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):
  """
  商品的過濾類
  """

  # 大于這個(gè)值 name指定字段 lookup_expr過濾條件
  # 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模糊查詢, 不指定過濾條件, 必須全部匹配
  # 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過濾器 也 是xadmin的過濾器
  'django_filters',
  'rest_framework',
]

url

from django.conf.urls import url, include

from rest_framework.routers import DefaultRouter

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

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

效果圖

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

相關(guān)文章

  • 跟老齊學(xué)Python之?dāng)?shù)據(jù)類型總結(jié)

    跟老齊學(xué)Python之?dāng)?shù)據(jù)類型總結(jié)

    前面已經(jīng)洋洋灑灑地介紹了不少數(shù)據(jù)類型。不能再不顧一切地向前沖了,應(yīng)當(dāng)總結(jié)一下。這樣讓看官能夠從總體上對(duì)這些數(shù)據(jù)類型有所了解,如果能夠有一覽眾山小的感覺,就太好了。
    2014-09-09
  • python模塊之sys模塊和序列化模塊(實(shí)例講解)

    python模塊之sys模塊和序列化模塊(實(shí)例講解)

    下面小編就為大家?guī)硪黄猵ython模塊之sys模塊和序列化模塊(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Linux 修改Python命令的方法示例

    Linux 修改Python命令的方法示例

    這篇文章主要介紹了Linux 修改Python命令的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python中threading模塊join函數(shù)用法實(shí)例分析

    Python中threading模塊join函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python中threading模塊join函數(shù)用法,以實(shí)例形式較為詳細(xì)的分析了join函數(shù)的功能與使用方法,需要的朋友可以參考下
    2015-06-06
  • 簡(jiǎn)單易懂Pytorch實(shí)戰(zhàn)實(shí)例VGG深度網(wǎng)絡(luò)

    簡(jiǎn)單易懂Pytorch實(shí)戰(zhàn)實(shí)例VGG深度網(wǎng)絡(luò)

    這篇文章主要介紹了簡(jiǎn)單易懂Pytorch實(shí)戰(zhàn)實(shí)例VGG深度網(wǎng)絡(luò),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python3 json模塊之編碼解碼方法講解

    Python3 json模塊之編碼解碼方法講解

    這篇文章主要介紹了Python3 json模塊之編碼解碼方法講解,需要的朋友可以參考下
    2021-04-04
  • Python方差特征過濾的實(shí)例分析

    Python方差特征過濾的實(shí)例分析

    在本篇文章里小編給大家整理了一篇關(guān)于Python方差特征過濾的實(shí)例分析內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-08-08
  • 一文帶你了解Python枚舉類enum的使用

    一文帶你了解Python枚舉類enum的使用

    枚舉是與多個(gè)唯一常量綁定的一組符號(hào),因?yàn)槊杜e表示的是常量,建議枚舉成員名用大寫 IntEnum 便于進(jìn)行系統(tǒng)交互。本文將通過一些示例代碼講解Python枚舉類的使用,需要的可以參考一下
    2022-10-10
  • python flask框架詳解

    python flask框架詳解

    這篇文章主要介紹了python flask框架詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • tf.concat中axis的含義與使用詳解

    tf.concat中axis的含義與使用詳解

    今天小編就為大家分享一篇tf.concat中axis的含義與使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評(píng)論