django rest framework 過濾時(shí)間操作
通常我們會(huì)用到過濾兩個(gè)時(shí)間段內(nèi)的一些數(shù)據(jù), 當(dāng)我們用django rest framework的時(shí)候, 他可以根據(jù)字段filter_fields進(jìn)行過濾, 但是對(duì)于日期來說并不起作用, 這個(gè)時(shí)候就需要我們?cè)O(shè)置重寫queryset方法進(jìn)行捕捉了
重寫get_queryset()
def get_queryset(self): start = self.request.query_params.get('fault_start_time', None) stop = self.request.query_params.get('fault_end_time', None) if start and stop: return models.ServerFaultRecord.objects.filter(fault_start_time__gte=start).filter(fault_end_time__lte=stop) return models.ServerFaultRecord.objects.all()
補(bǔ)充知識(shí):django中時(shí)間區(qū)間過濾,排序
1.過濾下載
pip install django-filter
2.下載后注冊(cè)
INSTALLED_APPS=['django_filters',]
3.導(dǎo)入rest_framework
from django_filters import rest_framework class DoctorsFilter(rest_framework.FilterSet): authentication_classes = [TokenAuthentication] #開始時(shí)間 start_date = rest_framework.DateFilter(field_name='start_date', lookup_expr='gte') #結(jié)束時(shí)間 end_date = rest_framework.DateFilter(field_name='end_date', lookup_expr='lte')
4.在類中的使用
from django_filters.rest_framework import DjangoFilterBackend from rest_framework.viewsets import ModelViewSet class DoctorsViewSet(ModelViewSet): filter_backends = [DjangoFilterBackend] #過濾其他的字段 filter_fields = ('id', 'patient', 'doc_type',) #指向要過濾的類 filter_class = DoctorsFilter
2.排序
#1.導(dǎo)入OrderingFilter from rest_framework.filters import OrderingFilter #2.在類中的使用 class CarsModelViewSet(ModelViewSet): queryset =models的類 serializer_class=序列化組件 filter_backends = [OrderingFilter] #/api/cars/?ordering=-id 倒序 #/api/cars/?ordering=id 正序 ordering_fields = ('id', )
以上這篇django rest framework 過濾時(shí)間操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中g(shù)etattr函數(shù)使用方法 getattr實(shí)現(xiàn)工廠模式
這篇文章主要介紹了python中g(shù)etattr()這個(gè)函數(shù)的一些用法,大家參考使用吧2014-01-01使用wxpython實(shí)現(xiàn)的一個(gè)簡(jiǎn)單圖片瀏覽器實(shí)例
這篇文章主要介紹了使用wxpython實(shí)現(xiàn)的一個(gè)簡(jiǎn)單圖片瀏覽器實(shí)例,根據(jù)自己的特殊需求而寫,需要的朋友可以參考下2014-07-07python實(shí)現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉(zhuǎn)換方法
這篇文章主要介紹了python實(shí)現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉(zhuǎn)換方法,涉及Python針對(duì)文件操作與編碼轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-08-08關(guān)于tensorflow的幾種參數(shù)初始化方法小結(jié)
今天小編就為大家分享一篇關(guān)于tensorflow的幾種參數(shù)初始化方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01python實(shí)現(xiàn)m3u8格式轉(zhuǎn)換為mp4視頻格式
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)m3u8格式轉(zhuǎn)換為mp4視頻格式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02使用python創(chuàng)建Excel工作簿及工作表過程圖解
這篇文章主要介紹了使用python創(chuàng)建Excel工作簿及工作表,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05