数据 :
{
"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 的数据
如果水果等于番石榴
输出将是 Guava 的数据
如果水果等于香蕉和番石榴
输出将是 Banana 和 Guava 的数据
此外,如果有人只想要 Nasik 地区的信息,那么输出将仅是 Nasik 地区的准确数据。查询“区”
如果 District 等于 Nasik
输出将是 Nasik 区的数据
如果 District 等于 Nanded
输出将是南德区的数据
同样,查询“Revenue_circle、Farmer 等。
我知道如何使用 find 在 mongoshell 中编写此查询
db.Wbcis.find({"水果":"香蕉"})
db.Wbcis.find({"District":"Nasik"}) 等等...
但我想在 python 脚本中编写查询,所以我对 models.py 和 views.py 文件感到困惑。
我厌倦并在models.py中使用Q对象输入查询
模型.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 循环编写此查询吗?