django:根据其他表数据对表数据进行排序

时间:2010-08-06 10:19:34

标签: sql django

我已阅读(优秀)文档,但我无法弄清楚如何 去做这个。

我有一个代表用户友谊的表 “候选名单”(带有“from_user”和“to_user”字段:两个外键 经典的auth_user表。即,from_user befriends to_user)。

我有另一个表,我记录用户事件/操作(UserLog)。 在此表中有许多字段,包括“时间戳”和 当然是“用户”字段(auth_user的外键) 表)

如何从特定用户的表“Shortlist”中检索数据 (from_user)按UserLog表中的时间戳排序?或者我怎么能 检索按总数排序的特定from_user的Shortlist数据 记录了“to_user”操作的数量?

换句话说,我想检索所有用户的朋友 最活跃或最先通过最近的行动来订购它们。


感谢您的回答,但我想我可能还需要一些帮助。我想要做的是根据用户的活动(最活跃的用户优先)订购用户。活动记录在另一个表中。

例如我想做这样的事情(如果可能的话)

从用户U中选择*,(从UserLog L中选择计数(id),其中U.id = L.user_id)作为动作命令的操作顺序

我还想根据他们最近的行动(用户最近的行动,第一次)对它们进行排序。

关于如何做这些事情的任何想法(或最佳实践)?

1 个答案:

答案 0 :(得分:4)

使用相关字段语法可以按其他表进行排序:

示例:

UserProfile.objects.all().order_by('user__username')

使用annotations

根据字段计算内容