我正在使用DRF开发一个django rest api,在我的一个视图中,我覆盖了get_queryset函数:
class UserSearchListView(generics.ListAPIView):
...
def get_queryset(self):
current_user_friends = Friend.objects.friends(self.request.user)
all_users = User.objects.all()
# from the all_users queryset I need to remove the current_user_friends queryset.
# Should the exclude function be used?
从all_users
查询集我需要排除发出请求的用户和current_user_friends
查询集中包含的用户的朋友。我怎么能这样做?
答案 0 :(得分:0)
类似的东西:
all_users = [1,2,3,4]
current_user_friends = [1,2]
print list(set(all_users)-set(current_user_friends))
print [user for user in all_users if user not in current_user_friends]
print filter(lambda user: user not in current_user_friends, all_users)
答案 1 :(得分:0)
您可以利用QuerySets的values_list和.exclude()方法来实现您的目标:
pass by reference
要排除发出请求的用户,您可以从请求对象中检索它,或者在请求中传递标识值以将其检索并将其包含在单独的.exclude()中。