Я хочу написать все типы сложных запросов, например:
Если кому-то нужна информация о том, что «Фрукты» — это «Гуава» в «Районе Пуны», они получат данные о гуаве в округе Пуна.
htt//api/?fruit=Guava&?district=Pune
Если кому-то нужна информация «Фрукты» — это «Гуава» в «Girnare Taluka», они получат данные для гуавы в girnare taluka.
htt://api/?fruit=Guava&?taluka=Girnare
Если кому-то нужна информация о «Фруктах», это «Гуава» и «Банан», тогда они получат все данные только для этих двух фруктов, как и мудро.
htt://api/?fruit=Guava&?Banana
Но когда я запускаю сервер, я не могу получить правильный вывод. Если я использую http://api/?fruit=Banana
, я получаю все данные для фруктов, таких как банан, гранат, гуава, вместо того, чтобы получать данные для фруктов, это только банан. Поэтому я смущен тем, что здесь происходит. не могли бы вы проверить мой код, где я допустил ошибку? *Вот мои все файлы
модели.py
class Wbcis(models.Model):
Fruit = models.CharField(max_length=50)
District = models.CharField(max_length=50)
Taluka = models.CharField(max_length=50)
Revenue_circle = models.CharField(max_length=50)
Sum_Insured = models.FloatField()
Area = models.FloatField()
Farmer = models.IntegerField()
def get_wbcis(fruit=None, district=None, talkua=None, revenue_circle=None, sum_insured=None, area=None,min_farmer=None, max_farmer=None, limit=100):
query = Wbcis.objects.all()
if fuit is not None:
query = query.filter(Fruit=fruit)
if district is not None:
query = query.filter(District=district)
if taluka is not None:
query = query.filter(Taluka=taluka)
if revenue_circle is not None:
query = query.filter(Revenue_circle= revenue_circle)
if sum_insured is not None:
query = query.filter(Sum_Insured=sum_Insured)
if area is not None:
query = query.filter(Area=area)
if min_farmer is not None:
query = query.filter(Farmer__gte=min_farmer)
if max_farmer is not None:
query = query.filter(Farmer__lt=max_farmer)
return query[:limit]
Views.py
class WbcisViewSet(ModelViewSet):
queryset = Wbcis.objects.all()
serializer_class = WbcisSerializer
def wbcis_view(request):
fruit = request.GET.get("fruit")
district = request.GET.get("district")
taluka = request.GET.get("taluka")
revenue_circle = request.GET.get("revenue_circle")
sum_insured = request.GET.get("sum_insured")
area = request.GET.get("area")
min_farmer = request.GET.get("min_farmer")
max_farmer = request.GET.get("max_farmer")
wbcis = get_wbcis(fruit, district, taluka,revenue_circle,sum_insured,area, min_farmer, max_farmer)
#convert them to JSON:
dicts = []
for wbci in wbcis:
dicts.append(model_to_dict(wbci))
return JsonResponse(dicts)
Сериализаторы.py
from rest_framework.serializers import ModelSerializer
from WBCIS.models import Wbcis
class WbcisSerializer(ModelSerializer):
class Meta:
model = Wbcis
fields=('id','Fruit','District','Sum_Insured','Area','Farmer','Taluka','Revenue_circle',)
что нужно изменить в этом коде для вызова этих запросов, чтобы получить точный результат?
get_wbcis
-if fuit is not None:
- person Sayse   schedule 22.12.2016