数据:
{
"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
}
我想写所有类型的组合查询,如果有人想要的信息只为水果,这是番石榴那么输出将是准确的数据番石榴只。你知道吗
另外,如果有人只想要香蕉和番石榴水果的信息,那么输出将是香蕉和番石榴的精确数据。你知道吗
如果水果等于香蕉
输出将是香蕉的数据
如果水果等于番石榴
输出将是番石榴的数据
如果水果等于香蕉和番石榴
输出将是香蕉和番石榴的数据
另外,如果有人只想知道Nasik地区的信息,那么输出将是Nasik地区的精确数据。查询“地区”
如果地区等于纳西克
输出将是Nasik区的数据
如果地区等于南德
输出将是南德区的数据
同样,还有“收入圈、农民等”的查询
我知道如何使用find在mongoshell中编写这个查询
你知道吗db.Wbcis.find文件({“水果”:“香蕉”})
你知道吗db.Wbcis.find文件({“District”:“Nasik”})等。。。你知道吗
但是我想用python脚本编写查询,所以我很困惑型号.py以及视图.py文件。你知道吗
我在中使用Q对象创建并键入查询型号.py你知道吗
型号.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循环写这个查询吗?你知道吗
我不知道你想要什么,但你的问题似乎是对的。你知道吗
我认为您使用
for
循环的意思是,您可以迭代查询(从技术上讲,是QuerySet
)以获得结果。你知道吗例如:
如果要按多个条件进行筛选,只需在筛选器中设置多个条件即可。例如,在南德买香蕉
你不需要使用
for
循环。默认情况下,filter
使用and
组合您的条件。这意味着在上面的例子中,水果必须是“香蕉”、和地区必须是“南德”。你知道吗看看你的问题中的例子,你有这样的疑问:
此查询永远不会返回任何结果。它要求的对象既有“番石榴”的果实,也有“香蕉”的果实。你想要的是:
这个新查询返回水果为“番石榴”或“香蕉”的对象。你知道吗
我理解这可能会让人困惑,因为您想返回Guavas和Bananas,但可以将其视为布尔表达式。你知道吗
您可以将其包装为如下函数:
limit
参数确保最多返回多个结果。你知道吗本例中的minu farmer使用
__gte
查询运算符,这意味着将返回farmer大于或等于min_farmer
的结果。你知道吗max\u farmer使用\uu lt运算符,因此将返回farmer小于但不等于
max_farmer
的结果。你知道吗类似地,如果需要不同的不等式过滤器,可以使用\uu gt或\uu lte。你知道吗
你的
views.py
可以这样做:相关问题 更多 >
编程相关推荐