Python 如何筛选django中未被跟踪的用户

Python 如何筛选django中未被跟踪的用户,python,django,Python,Django,朋友们,我正在使用django友谊和django 1.9来实现用户关注。但在“要跟踪的用户”页面上,我想筛选当前用户没有跟踪的用户。我应该如何实现这一点 这是我的观点 def users_to_follow(request): follow = Follow.objects.following(request.user) all_users = User.objects.all().exclude(follow) return render(request,"auths/

朋友们,我正在使用django友谊和django 1.9来实现用户关注。但在“要跟踪的用户”页面上,我想筛选当前用户没有跟踪的用户。我应该如何实现这一点

这是我的观点

def users_to_follow(request):
    follow = Follow.objects.following(request.user)
    all_users = User.objects.all().exclude(follow)
    return render(request,"auths/users_to_follow.html",locals())
这是我的用户_to _follow.html

{% for u in all_users %}
  {{ u.username }}
  <a href="{% url 'follow' u.username %}">Follow</a>
{% endfor %}
{%for u in all_users%}
{{u.username}
{%endfor%}

我认为views.py有问题。但我还没弄明白。朋友们,帮帮我。

followname(变量)是用户对象的列表。您可以获得这些用户的ID,如下所示:

follow = Follow.objects.following(request.user)
follow_ids = [x.id for x in follow]
然后像这样使用
exclude

to_follow = User.objects.all().exclude(id__in=follow)

下面的
列表应该包含您想要的用户

排除
不以这种方式工作。您可以尝试以下操作:

def users_to_follow(request):
    all_users = User.objects.exclude(following__follower=request.user)
    return render(request,"auths/users_to_follow.html",locals())

根据Django QuerySet(重点矿山):

字段查找是指定SQLWHERE子句内容的方式。它们被指定为QuerySet方法filter()、exclude()和get()的关键字参数

因此,您的
exclude()
方法调用可以根据需要进行调整

all_users = User.objects.all().exclude(pk=follow)
就这样