模型obj返回相同的对象

时间:2020-09-04 09:43:55

标签: django django-models

希望你很好

我有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,拥有最多的房地产

1 个答案:

答案 0 :(得分:1)

此输出表示您的数据库中至少有3个名为“ lahore”的城市对象,请尝试合并/删除其中一些对象。 也可以尝试在查询集中使用它:

cities = City.objects.all().annotate(num_properties=Count('property')) \
                .order_by('-num_properties')[:3]