Данные:
{
"Fruit": "Pomegranate",
"District": "Nasik",
"Taluka": "Nasik",
"Revenue circle": "Nasik",
"Sum Insured": 28000,
"Area": 1200,
"Farmer": 183
}
{
"Fruit": "Pomegranate",
"District": "Jalna",
"Taluka": "Jalna",
"Revenue circle": "Jalna",
"Sum Insured": 28000,
"Area": 120,
"Farmer": 13
}
{
"Fruit": "Guava",
"District": "Pune",
"Taluka": "Haveli",
"Revenue circle": "Uralikanchan",
"Sum Insured": 50000,
"Area": 10,
"Farmer": 100
}
{
"Fruit": "Guava",
"District": "Nasik",
"Taluka": "Girnare",
"Revenue circle": "Girnare",
"Sum Insured": 50000,
"Area": 75,
"Farmer": 90
}
{
"Fruit": "Banana",
"District": "Nanded",
"Taluka": "Nandurbar",
"Revenue circle": "NandedBK",
"Sum Insured": 5000,
"Area": 2260,
"Farmer": 342
}
{
"Fruit": "Banana",
"District": "Jalgaon",
"Taluka": "Bhadgaon",
"Revenue circle": "Bhadgaon",
"Sum Insured": 5000,
"Area": 220,
"Farmer": 265
}
Я хочу написать все типы комбинированных запросов, если кому-то нужна информация только для фруктов, которые являются гуавой, то на выходе будут точные данные только для гуавы.
также, если кому-то нужна информация только для фруктов, то есть бананов и гуавы, то на выходе будут точные данные для бананов и гуавы.
Если фрукт равен банану
на выходе будут данные для Banana
Если фрукты равны гуаве
на выходе будут данные для Гуавы
Если фрукты равны банану и гуаве
на выходе будут данные для банана и гуавы
Кроме того, если кому-то нужна информация только для округа Насик, то на выходе будут точные данные только для района Насик. Запрос «Район»
Если Район равен Насику
на выходе будут данные по Насикскому району
Если District равен Nanded
выходными данными будут данные для округа Нандед.
аналогично, есть запрос для «Revenue_circle, Farmer и т. д.
Я знаю, как писать эти запросы в mongoshell, используя find
db.Wbcis.find({"Фрукты":"Банан"})
db.Wbcis.find({"Район":"Насик"}) и т.д...
но я хочу писать запросы в скрипте Python, поэтому я запутался в файлах models.py и views.py.
Я устал и набираю запрос, используя объекты Q в models.py
models.py
from django.contrib.auth.models import User
from django.db import models
from django.db.models import Q
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 __str__(self):
return self.Fruit
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
class Meta:
verbose_name_plural = 'wbcis'
from models import Wbcis
Guava =Wbcis.objects.filter(Q(Fruit='Guava'))
print Guava
Banana= Wbcis.objects.filter(Q(Fruit='Banana'))
print Banana
Pomegranate= Wbcis.objects.filter(Q(Fruit='Pomegranate'))
print Pomegranate
Guava_Banana=Wbcis.objects.filter(Q(Fruit='Guava')&Q(Fruit='Banana'))
print Guava_Banana
Но я знаю, что это неправильный способ запроса. Мне нужно написать это в цикле for или в цикле while. не могли бы вы помочь мне, как написать этот запрос, используя цикл for?