Django内部联接

时间:2012-09-02 16:37:38

标签: django

我在使用django查询时遇到了一些困难。基本上我正在尝试在Tutor_info(用户,联系人等)和UserProfile(用户,点等)之间执行内部联接,该联接由“用户”列连接。结果将按UserProfile中的“points”列按降序排序,生成有序的Tutor_info对象列表。

我不确定如何使用另一个表上的属性生成Tutor_info列表的排序 - UserProfile表。

我应该做以下事情吗?

tutors_list = Tutor_info.objects.all() 
for t in tutors_list:
    UserProfile.objects.filter(user=t.user)
    ???

1 个答案:

答案 0 :(得分:5)

如果尝试在外部列上过滤/排序,Django会隐式执行内连接。所以这将有效:

tutors_list = Tutor_info.objects.all().order_by('-user__points')

如果您加入auth.User模型(感谢Daniel Roseman),可以这样做:

tutors_list = Tutor_info.objects.all().order_by('-user__userprofile__points')