首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从django的User.objects.all()查询集中排除用户的朋友列表

在Django中,可以使用exclude()方法从User.objects.all()查询集中排除用户的朋友列表。exclude()方法接受一个参数,该参数是一个查询表达式,用于指定要排除的条件。

以下是一个完善且全面的答案:

在Django中,可以使用exclude()方法从User.objects.all()查询集中排除用户的朋友列表。exclude()方法接受一个参数,该参数是一个查询表达式,用于指定要排除的条件。查询表达式可以使用Django的Q对象来构建复杂的查询条件。

例如,假设我们有一个名为Friendship的模型,用于表示用户之间的朋友关系。该模型包含两个外键字段,分别指向User模型,表示朋友关系的两个用户。

要排除用户的朋友列表,可以使用以下代码:

代码语言:txt
复制
from django.db.models import Q

user = User.objects.get(id=user_id)
friends = Friendship.objects.filter(Q(user1=user) | Q(user2=user)).values_list('user1', 'user2')
users_excluding_friends = User.objects.exclude(id__in=friends)

在上面的代码中,首先通过User.objects.get(id=user_id)获取到指定用户的对象。然后,使用Friendship.objects.filter(Q(user1=user) | Q(user2=user))查询出该用户的朋友关系列表,并使用values_list('user1', 'user2')将结果转换为包含朋友关系的元组列表。

最后,通过User.objects.exclude(id__in=friends)从所有用户中排除朋友关系列表中的用户,得到排除了用户的朋友列表。

这种方法可以灵活地排除用户的朋友列表,并且可以适用于各种复杂的朋友关系模型。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云对象存储COS、腾讯云容器服务TKE、腾讯云CDN加速、腾讯云安全组等。你可以在腾讯云官网上找到这些产品的详细介绍和文档。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python测试开发django-14.查询表结果(超详细)

前言 django查询数据库的方法很多,不同的方法返回的结果也不太一样,本篇详细讲解关于查询的13个方法 返回对象是对象列表的: all(), filter(), exclude(), order_by...sql : select * from hello_user django里面查询数据库不需要写sql语句 ret=表的类名称.objects.all() 返回的是整个表的内容, 这里返回的是可迭代对象...可迭代的字典序列values() all()和filter()返回的都是可迭代的queryset序列,平常我们习惯获取字典的对象,可以用values()方法获取 User.objects.all().values...查找用户名不是”yoyo”的数据 et=User.objects.exclude(user_name=”yoyo”) order_by() 对查询结果排序 由queryset对象调用,返回值是...去重一样 ret=User.objects.all().values(“user_name”, “mail”).distinct() get()返回单个对象 django的get是从数据库的取得唯一个匹配的结果

1.1K20
  • Django框架开发015期 数据的查询,根据搜索条件查询用户

    开发用户查询页面,我们从实际用户查询行为的角度出发,我们需要做如下开发: 1)修改用户列表页面,增加一个查询功能; 2)增加一个搜索页面,显示搜索得到的结果; 3)开发路由,用于显示搜索信息的结果页;...第1步:修改用户列表页面 我们在ljyUserList.html页面中添加一个可以用于查询数据的控件,这个控件应该在一个form表单中,添加在用户列表标题和表格中间,添加代码如下: ...由于这里我们是做查询信息,所以我们重新开发一个新的视图函数专门用于显示查询结果,这样的表述比较清晰。当然,有的读者可能会问:“我能不能把这个功能开发在用户列表显示的视图函数中?”.../ljySearch.html',{'userlist':users})#将查询结果传递给查询结果页面,类似之前的用户信息列表 我们在代码中已经对查询整个过程的语句已经做了详细的解释。...主要在这个查询中,我们使用到了filter函数的功能,用来过滤指定字段的数据,结果返回一个列表。如果查询不到,结果就返回一个长度为0的空列表。

    36420

    Django之model查select的用法

    ()[:3] # limit,取第三条以后的数据,没有对应的SQL,类似的如:select * from User limit 3,10000000,从第3条开始取数据,取10000000条(10000000...大于表中数据条数) User.objects.all()[3:] # offset,取出结果的第10-20条数据(不包含10,包含20),也没有对应SQL,参考上边的SQL写法 User.objects.all...,正常values_list给出的结果是个列表,里边里边的每条数据对应一个元组,当只查询一列时,可以使用flat标签去掉元组,将每条数据的结果以字符串的形式存储在列表中,从而避免解析元组的麻烦 User.objects.values_list...: # 查询用户的角色名 _t = User.objects.get(username='运维咖啡吧') _t.role.name 反向查询: # 查询角色下包含的所有用户 _t = Role.objects.get...: # 查询用户隶属组 _t = User.objects.get(username = '运维咖啡吧') _t.groups.all() 反向查询: # 查询组包含用户 _t = Group.objects.get

    75940

    Django模型学习笔记(五)

    ,所要求的结果是在blog的app应用下,创建用户表,见app应用下blog下的models.py的 源码: #!...在查询的部分,我们来查看各种不同情况的查询,先看源码部分: from django.shortcuts import render,render_to_response from django.http...') 在本节中,从开始就说Django模型有 多么强大,通过几行代码就是实现了数据的增加,删除,修改以及查询,但是在实际的数据库中,是通过查询sql语句来获取的,在Django中也是,我们可以把获取的对象给...查询多少条数据,见实现的源码以及控制台的信息: def Select(request): '''实现数据库的查询操作''' # #获取所有的数据 # obj=User.objects.all...# obj=User.objects.all().count() # print u'数量为:',obj #对用户名进行模糊查询 obj=User.objects.filter

    55930

    Django model select的各种用法详解

    《Django model update的各种用法介绍》文章介绍了Django model的各种update操作,这篇文章就是她的姊妹篇,详细介绍Django model select的用法,配以对应...大于表中数据条数) User.objects.all()[3:] # offset,取出结果的第10-20条数据(不包含10,包含20),也没有对应SQL,参考上边的SQL写法 User.objects.all...,正常values_list给出的结果是个列表,里边里边的每条数据对应一个元组,当只查询一列时,可以使用flat标签去掉元组,将每条数据的结果以字符串的形式存储在列表中,从而避免解析元组的麻烦 User.objects.values_list...: # 查询用户的角色名 _t = User.objects.get(username='运维咖啡吧') _t.role.name 反向查询: # 查询角色下包含的所有用户 _t = Role.objects.get...: # 查询用户隶属组 _t = User.objects.get(username = '运维咖啡吧') _t.groups.all() 反向查询: # 查询组包含用户 _t = Group.objects.get

    1.1K30

    django模型

    也可以使用一条语句创建并保存一个对象,使用create()方法 查询对象 通过模型中的管理器构造一个查询集,来从你的数据库中获取对象。 查询集(queryset)表示从数据库中取出来的对象的集合。...过滤器基于所给的参数限制查询的结果。 从SQL 的角度,查询集和SELECT 语句等 价,过滤器是像WHERE 和LIMIT 一样的限制子句。 你可以从模型的管理器那里取得查询集。...例如,User.objects.all() 返回包含数据库 中所有Blog 对象的一个查询集。 获取所有对象 获取一个表中所有对象的最简单的方式是全部获取。...,之后增加一个过滤器,然后又增加一个 排除,再之后又是另外一个过滤器。...指定显示列 values(返回一个列表) 返回一个ValuesQuerySet——QuerySet的一个子类,迭代时返回字典而不是模型实例对 象。

    3.1K20

    django orm 重点大全

    1.最简单的跨表,查询外键表中符合主表条件的记录列表 #用户类型表 class User_typ(models.Model): name=models.CharField(max_length=...(max(100)) type=models.ForeignKey(User_typ) #查询用户表里所有记录(对象列表) obj_list=User.objects.all() #查询用户表里某一列字段的所有记录...(对象列表) obj_field_list=User.objects.all().values('name') #跨表 #查询用户表中,用户类型为 普通用户(用户类型表中有一条记录为‘普通用户’) 的所有记录...(对象列表) obj=User.objects.filter(type__name='普通用户') 2.最简单的多表联查,查询外键表中符合主表的主表的条件的记录列表 #主表aa class aa(models.Model...2.orm字段必须要知道的一些属性 (0)null 如果为True,Django 将用NULL 来在数据库中存储空值。

    79640

    python测试开发django-15.查询结果转json(serializers)

    前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse。...django查询数据库返回json数据有3种方法 serializers转json model_to_dict转字典 values()转list (最简单,推荐!)...它是 HttpResponse 的一个子类,用来帮助用户创建JSON 编码的响应。...'{"foo": "bar"}' serializers转json django里面有个serializers方法可以,直接把查询的结果转成json数据 接着上一篇查询User表里面的所以数据,用all...接下来介绍第二种方法使用model_to_dict方法把查询的queryset序列结果转成字典序列 # helloworld/helloworld/testdb.py from django.http

    2.1K40

    3. DRF进阶之DRF视图和常用功能

    ,删除,查看 ViewSet类 GenericAPIView已经完成了许多功能,但会有一个问题,获取所有用户列表和单个用户需要分别定义两个视图和URL路由,使用ViewSet可以很好解决这个问题,并且实现了路由自动映射...JWT 与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...:基于Token的认证 RemoteUserAuthentication:基于远程用户的认证 DRF支持权限: IsAuthenticated:只有登录用户才能访问所有API AllowAny:允许所有用户...IsAdminUser:仅管理员用户 IsAuthenticatedOrReadOnly:登录的用户可以读写API,未登录用户只读 DRF Session 认证 参考文档: https://www.django-rest-framework.org

    4.8K10

    安装 Django REST Framework

    下面是一个简单的视图示例,用于返回所有用户的列表:from rest_framework import genericsfrom django.contrib.auth.models import Userfrom...() serializer_class = UserSerializer在上面的示例中,我们从rest_framework导入generics视图,并定义了一个名为UserList的视图。...我们指定了我们想要返回的所有用户的查询集,并指定了用于序列化数据的序列化器。创建路由路由是将URL映射到视图的一种机制。在DRF中,我们可以使用Django的URLConf和DRF的路由器来定义路由。...= [ path('users/', UserList.as_view()),]在上面的示例中,我们定义了一个名为urlpatterns的列表,其中包含一个将/users/映射到UserList...现在,您可以在浏览器中访问http://localhost:8000/users/,应该能够看到所有用户的JSON格式数据。上面的示例只是DRF的入门示例。

    1.6K20

    从豆瓣批量获取看过电影的用户列表,并应用kNN算法预测用户性别

    完整代码 1 #coding=utf-8 2 ##从豆瓣网页中得到用户id 3 4 ##网页地址类型:http://movie.douban.com/subject/26289144/collections...html文本中解析用户id和连接 32 def parseHtmlUserId(html): 33 idList=[] #返回的id列表 34 linkList=[] #返回的...算法原理:存在一个样本数据集合(训练集),并且样本集中每个数据都存在标签(即每一数据与所属分类的关系已知)。...输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较(计算欧氏距离),然后提取样本集中特征最相似数据(最近邻)的分类标签。...上述不同的测试集均来自同一样本集中,为随机选取所得。 Python代码 自己重新实现了一下kNN的代码,对上次的算法一小处(从k个近邻中选择频率最高的一项)做了简化。

    2.1K40

    【愚公系列】2022年04月 Python教学课程 74-DRF框架之过滤

    4.3 嵌套查找 4.4 参数说明 4.5 自定义过滤器 一、普通过滤 REST 框架的通用列表视图的默认行为是返回模型管理器的整个查询集。...通常,您希望 API 限制查询集返回的项目。 筛选子类的任何视图的查询集的最简单方法是重写该方法。...1.针对当前用户进行筛选 您可能希望筛选查询集,以确保仅返回与发出请求的当前经过身份验证的用户相关的结果。 为此,可以基于用户值进行筛选。....+)/$', PurchaseList.as_view()), 然后,您可以编写一个视图,返回按 URL 的用户名部分筛选查询集: class PurchaseList(generics.ListAPIView...筛选初始查询集的最后一个示例是根据 url 中的查询参数确定初始查询集。

    2.5K30
    领券