2012-10-17 58 views
0

我拥有所有权模型,其中包含用户和项目的FK。 用户有自己的朋友m2m。Django根据拥有它们的朋友的数量对对象进行排序

class Ownership: 
    user = FK(User) 
    item = FK(Item) 

class User: 
    friends = M2M(User) 

我想获取用户的所有权对象,按照具有相同项目的用户朋友的数量排序。完全可以在QuerySet中使用,还是应该使用原始SQL,如果是这样,那么SQL会是什么样子?

回答

1

,你应该能够做到:

(with user u) 

users_objects = sorted(Ownership.objects.filter(user=u), key=lambda x:Ownership.objects.filter(item=x.item, user__in=u.friends).count()) 
相关问题