首页
学习
活动
专区
工具
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()返回单个对象 djangoget是数据库取得唯一个匹配结果

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

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

    33020

    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

    75840

    Django模型学习笔记(五)

    ,所要求结果是在blogapp应用下,创建用户表,见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

    55630

    django模型

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

    3.1K20

    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

    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

    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 来在数据库中存储空值。

    79140

    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.6K10

    安装 Django REST Framework

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

    1.5K20

    豆瓣批量获取看过电影用户列表,并应用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个近邻中选择频率最高一项)做了简化。

    2K40

    【愚公系列】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

    《时间朋友2017》中收获16个新认知:市场篇、用户篇、成长篇

    笔者尝试产品经理角度去看演讲中一些案例和洞察,16个思考粗略分成三类:对于市场思考,对于用户思考,对于个人成长思考。...,如何一步步从一元中原文明,发展成为今天这个集中原,草原,高原,西域,大海一身多元大国,兼具大陆国家和海洋国家双重属性,成为世界枢纽,不禁感觉到满满自豪感,再一次坚信,中国未来发展一定会更好...就拿罗胖《时间朋友》跨年演讲为例,罗胖每次都会在演讲中间高潮地方让现场或电视机前朋友分享得到到朋友圈,本次演讲中,通过彼此荣耀让用户感动,进行了一波情感互动后,让大家写出了相信得到是最好知识服务...所以笔者认为,流量上,可以分析出趋势,绘制出粗略画像,而为如何完成游客-注册用户-注册付费用户-注册长期付费用户这个过程才是关键,至于所谓超级用户思维并非那么重要。...一直感觉罗胖产品(得到,罗辑思维,时间朋友)在做价值观传递(干预),也就是同一种令人认同价值取向来影响用户行为,在演讲中那句“彼此感到荣耀”让人特别激动而感动一波后直接让大家分享朋友圈,可谓干得漂亮

    68810
    领券