2013-04-24 54 views
1

我试图创建一个查询,在那里我检索登录的用户和他的“朋友”按最近排序的所有“活动”。 (朋友使用Django-Simple-Friends连接)。Django添加朋友来查询

以下查询对于检索按最近排序的登录用户的所有活动非常适用,但我不确定如何还包括用户的连接“朋友”。

activity = Activity.objects.filter(user=request.user).order_by('-created_date') 

我的活动类:

class Activity(models.Model): 
    user = models.ForeignKey(User) 
    created_date = models.DateTimeField(default=datetime.now) 
    activity_type = models.IntegerField(default=0) 

我很欣赏的时间和专业知识。

+0

在哪个表中存储用户的连接好友? – 2013-04-24 20:57:09

+0

用户连接的朋友存储在由Django-Simple-Friends创建的“友情”表中 – bbrooke 2013-04-24 21:04:42

回答

1

尝试查询是这样的:

friend_user_list = list(friends_list) + [request.user] 
activity = Activity.objects.filter(user__in=friend_user_list).order_by('-created_date') 

我试图做的有串联清单,[request.user]和他们的朋友(假设friends是友谊关系的相关名称)的列表并且user__in应修改WHERE条件以允许列表中的所有用户满足查询。

希望它有帮助。

+0

我得到错误:'用户'对象没有属性'朋友'我也尝试过“友谊”来代替“朋友”我得到的错误:'友谊'对象没有任何属性'全部'任何想法,我可以尝试什么? – bbrooke 2013-04-24 21:23:58

+0

你通常如何获得用户的朋友? – 2013-04-24 21:59:47

+0

我还没有必要生成该列表,但文档给出了这个例子来获取所有用户的朋友:朋友= Friendship.objects.friends_of(user1) – bbrooke 2013-04-24 22:11:05