views.pyкак использовать Джанго остальные фильтрации с 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
Это мой код.
Это работа для фильтрации именно того, что мы хотим serach.
, например: 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 вопросов получите правильный ответ. –