希望你很好
我有2个模型
class Property(models.Model):
....
city = models.ForeignKey(City,on_delete=models.CASCADE)
class City(models.Model):
img = models.ImageField(upload_to='city/img',blank=True,null=True)
name = models.CharField(max_length=200,unique=True)
我要获得3个拥有最多房地产的城市,这意味着我想要拥有最多房地产的城市
所以我使用以下查询:
city = City.objects.all().order_by("-property")[0:3]
但是这不起作用,因为它返回了相同的值
这是输出:
<QuerySet [<City: lahore>, <City: lahore>, <City: lahore>]>
拉合尔的房产数量最多,所以只给我拉合尔
我想要三个城市,例如city1,city2,city3,拥有最多的房地产
答案 0 :(得分:1)
此输出表示您的数据库中至少有3个名为“ lahore”的城市对象,请尝试合并/删除其中一些对象。 也可以尝试在查询集中使用它:
cities = City.objects.all().annotate(num_properties=Count('property')) \
.order_by('-num_properties')[:3]