【发布时间】:2018-01-04 22:58:02
【问题描述】:
在我的一个观点中,我重写了 get_queryset(self) 方法,以返回一个用户列表,其中不包括发出请求的用户的朋友和同一用户。这是我的代码的样子:
def get_queryset(self):
all_users = User.objects.all()
user_friends = Friend.objects.friends(self.request.user)
# Filter all_users to exclude all elements of the user_friends queryset.
# Filter all_users to exclude the current user making the request.
# Return the filtered queryset.
我正在使用django-friendship 库来处理好友请求和用户成为好友。在getting data about friendship section 中,它表示要获取用户所有朋友的列表,只需Friend.objects.friends(request.user)。我不确定这是否会返回 Friend 实例或 User 实例的列表。 Friend 模型的源代码是here。在任何一种情况下,我将如何过滤查询集 all_users 以排除列表 user_friends 的所有元素。
【问题讨论】:
-
Friends 具有to_user和from_user属性。当你说你要过滤all_usersQuerySet时,是应该基于to_user还是from_user中的user_friends值? -
应该基于赋予用户好友的属性。那不是 to_user 吗?
标签: python django list django-rest-framework django-queryset