Django:创建一个查询集
我有一个“友谊”模型,长得像这样:
from_user = ForeignKey(User, related_name='friends')
to_user = ForeignKey(User, related_name='friends_')
我有一个管理器,可以获取某个用户的所有“友谊”模型:
def for_user(self, user):
return self.filter( Q(to_user=user) | Q(from_user=user) )
现在我想要一个查询集,里面包含所有的朋友用户对象。我本来想简单地写个循环,把朋友加到一个列表里,但这样的话我就失去了写查询的能力。比如说,我想找某个用户的所有朋友,并且想筛选出一个特定用户名的朋友。
我问题的标题有点普通,如果有人知道更好的标题,欢迎随意修改。
1 个回答
1
User.objects.filter(Q(friends__to_user=someuser)|Q(friends___from_user=someuser))
我不知道第二个 Q()
是否真的能用,但这就是你决定给相关字段起的名字。