这可能是一个非常简单的问题,但我无法弄清楚。我的用户模型的设置方式是它们附有一个配置文件,而配置文件中有一个Coins值。
我想通过硬币返回前10名用户,所以我认为像User.objects.all().order_by('coins')[:10]
这样的东西可行,但问题是硬币附在个人资料上。
.order_by('profile.coins')
似乎也不起作用。
答案 0 :(得分:4)
如果要遍历关系,请在查询集中使用双下划线表示法:
User.objects.order_by('profile__coins')[:10]
相关文档在此处:https://docs.djangoproject.com/en/1.11/topics/db/queries/#lookups-that-span-relationships
这些关系可以像你喜欢的那样深层嵌套,但请记住,深度嵌套会通过创建复杂的sql连接严重影响你的性能。