views.py如何使用Django的休息與mongoengine用於過濾列表過濾
from __future__ import unicode_literals
from rest_framework_mongoengine.viewsets import ModelViewSet as MongoModelViewSet
from app.serializers import *
from rest_framework_mongoengine.generics import *
from rest_framework import filters
def index_view(request):
context = {}
return TemplateResponse(request, 'index.html', context)
class ToolViewSet(MongoModelViewSet):
serializer_class = ToolSerializer
my_filter_fields = ('crop', 'district','taluka','circle','year',)
def get_kwargs_for_filtering(self):
filtering_kwargs = {}
for field in self.my_filter_fields: # iterate over the filter fields
field_value = self.request.query_params.get(field) # get the value of a field from request query parameter
if field_value:
filtering_kwargs[field] = field_value
return filtering_kwargs
def get_queryset(self):
queryset = Tool.objects.all()
filtering_kwargs = self.get_kwargs_for_filtering() # get the fields with values for filtering
if filtering_kwargs:
queryset = Tool.objects.filter(**filtering_kwargs) # filter the queryset based on 'filtering_kwargs'
return queryset
這是我的代碼。
它的工作原理是精確地篩選我們想要的東西。
例如:http://api/tool/?district=Nasik&crop=banana
但是,它不工作的列表的Fileds 例如:http://api/tool/?district=Nasik&district=Pune 這給了輸出:[](空)
如何獲得此過濾器的工作來獲取所有區「納西克」,區‘普納’
能否請你幫我,我不得不爲獲取數據在我的代碼的變化,如果我搜索http://api/tool/?crops=guava,banana 或http:../工具/區=納西克,浦那
給我正確的輸出?
,你的意思是在我的領域= {'name':['exact','in','startswith']}我必須使用這個? –
你可以請給我一些提示,它會幫助你 –
真棒...非常感謝,這正是我想要的...... !!!搜索1000個問題後得到正確的答案。 –