首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模型obj返回相同的对象

模型obj返回相同的对象
EN

Stack Overflow用户
提问于 2020-09-04 17:43:55
回答 1查看 17关注 0票数 0

希望你一切都好

我有两个模型

代码语言:javascript
复制
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个拥有最多房产的城市意味着我想要拥有最多房产的城市

所以我使用这个查询:

代码语言:javascript
复制
city = City.objects.all().order_by("-property")[0:3]

但这是不起作用的,因为它返回相同的值

下面是输出:

代码语言:javascript
复制
<QuerySet [<City: lahore>, <City: lahore>, <City: lahore>]>

拉合尔拥有最多的房产,所以它只给我提供了拉合尔

我想要三个城市,例如city1、city2、city3,拥有最多的房产

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-04 18:08:53

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

代码语言:javascript
复制
cities = City.objects.all().annotate(num_properties=Count('property')) \
                .order_by('-num_properties')[:3]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63738706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档