【问题标题】:How do I make a query into a field in Django如何对 Django 中的字段进行查询
【发布时间】:2017-05-31 21:39:04
【问题描述】:

这可能是一个非常简单的问题,但我无法弄清楚。我的用户模型的设置方式是他们附加了一个配置文件,并且在配置文件中有一个硬币的值。

我想用硬币返回前 10 名用户,所以我认为像:User.objects.all().order_by('coins')[:10] 这样的东西会起作用,但问题是硬币附在个人资料上。

.order_by('profile.coins') 似乎也不起作用。

【问题讨论】:

  • 仅供参考,您还可以通过扩展名为 AbstractUser 的类来扩展常规用户模型。然后,您可以添加您喜欢的任何字段,而无需整个配置文件业务。只是一个想法。

标签: sql django database


【解决方案1】:

如果要遍历关系,请在查询集中使用双下划线表示法:

User.objects.order_by('profile__coins')[:10]

相关文档在这里:https://docs.djangoproject.com/en/1.11/topics/db/queries/#lookups-that-span-relationships

这些关系可以嵌套任意深度,但请记住,深度嵌套会通过创建复杂的 sql 连接严重影响您的性能。

【讨论】:

    猜你喜欢
    • 2012-09-30
    • 2012-08-11
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多