django rest framework 過濾時(shí)間操作
通常我們會用到過濾兩個(gè)時(shí)間段內(nèi)的一些數(shù)據(jù), 當(dāng)我們用django rest framework的時(shí)候, 他可以根據(jù)字段filter_fields進(jìn)行過濾, 但是對于日期來說并不起作用, 這個(gè)時(shí)候就需要我們設(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ǔ)充知識:django中時(shí)間區(qū)間過濾,排序
1.過濾下載
pip install django-filter
2.下載后注冊
INSTALLED_APPS=[’django_filters’,]
3.導(dǎo)入rest_framework
from django_filters import rest_frameworkclass 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 DjangoFilterBackendfrom rest_framework.viewsets import ModelViewSetclass DoctorsViewSet(ModelViewSet): filter_backends = [DjangoFilterBackend] #過濾其他的字段 filter_fields = (’id’, ’patient’, ’doc_type’,) #指向要過濾的類 filter_class = DoctorsFilter
2.排序
#1.導(dǎo)入OrderingFilterfrom 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í)間操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 利用單元測試對PHP代碼進(jìn)行檢查2. python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML3. Java8內(nèi)存模型PermGen Metaspace實(shí)例解析4. python excel和yaml文件的讀取封裝5. python3實(shí)現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)6. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決7. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊8. Django 權(quán)限管理(permissions)與用戶組(group)詳解9. App啟動優(yōu)化-Android性能優(yōu)化10. 詳解docker pull 下來的鏡像都存到了哪里
