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

如何在django中过滤外键不为空的模型对象?

在Django中,可以使用__isnull查询条件来过滤外键不为空的模型对象。

假设有两个模型,一个是主模型(ParentModel),另一个是外键模型(ChildModel),并且ChildModel有一个外键字段指向ParentModel。要过滤出ParentModel中外键不为空的对象,可以使用以下代码:

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

# 导入需要的模型

# 过滤外键不为空的模型对象
filtered_objects = ParentModel.objects.filter(childmodel__isnull=False)

# 如果需要同时过滤其他条件,可以使用Q对象
from django.db.models import Q

filtered_objects = ParentModel.objects.filter(Q(childmodel__isnull=False) & Q(other_field=value))

在上述代码中,childmodel__isnull=False表示过滤出外键不为空的对象。如果还需要同时过滤其他条件,可以使用Q对象,并使用&操作符连接多个条件。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云数据库MySQL。

  • 腾讯云云服务器(CVM):提供高性能、可扩展的云服务器,适用于各种应用场景。详情请参考:腾讯云云服务器(CVM)
  • 腾讯云数据库MySQL:提供稳定可靠的云数据库服务,支持高可用、备份恢复等功能。详情请参考:腾讯云数据库MySQL
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django框架学习(三)

%} # 遍历为逻辑 {% endfor %} # Django模板for循环 {% for ... in ... %} # 遍历不为数据 # 获取for循环遍历到了第几次...| 过滤器(参数...)}} b) Django模板过滤使用: {{ 模板变量 | 过滤器:参数 }} 注意:Django过滤器:号之后只能接收一个参数 ?...4.数据库 ORM框架: 作用:将模型类和数据表进行对应,通过面向对象方式进行数据库操作。 flaskSQLALchemy Django自带ORM框架,可以直接进行使用。...AutoField选项使用 unique 如果为True, 这个字段在表必须有唯一值,默认值是False 在设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理...,在django.db.models包含了可选常量: CASCADE 级联,删除主表数据时连通一起删除外数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被应用数据

1.8K40

django_数据库操作—增、删、改、查

>>> hero2 = HeroInfo( hname='猪八戒', hgender=0, hbook_id=book.id ) >>> hero2.save() hbook是...实现SQLwhere功能,包括 filter 过滤出多个结果 exclude 排除掉符合条件剩下结果 get 过滤单一结果 过滤条件表达语法如下: 属性名称__比较运算符=值...i表示不区分大小写,iexact、icontains、istartswith、iendswith. 3> 查询 isnull:是否为null。...__isnull 例:查询书名不为图书。 BookInfo.objects.filter(btitle__isnull=False) 4> 范围查询 in:是否包含在范围内。...: 多对应模型对象.多对应模型关系类属性名 例: 比如查询英雄为1下面的所有图书 h = HeroInfo.objects.get(id=1) h.hbook hbook定义模型类时对应属性

1.2K30

Django教程 —— 模型类条件查询

引言 在之前 Django模型设计 简单介绍了如何利用模型类对数据库进行增删改查,在这篇主要介绍使用模型类对数据库进行条件查询。让大家更加熟悉 Django 操作数据库。...通过 属性名_id 表示对应对象 id 值。 语法如下: 属性名称__比较运算符=值 说明:属性名称和比较运算符间使用两个下划线,所以属性名不能包括多个下划线。... iexact、icontains、istartswith、iendswith. 3) 查询 isnull:是否为null。...例:查询书名不为图书。 books = BookInfo.objects.filter(title__isnull=False) 4) 范围查询 in:是否包含在范围内。...,需要使用 Q对象 结合 | 运算符,Q对象 被定义在 django.db.models

1.1K20

Django相关知识点回顾

# Jinja2模板for循环 {% for ... in ... %} # 遍历不为逻辑 # 获取for循环遍历到了第几次 {{ loop.index }} {% else...%} # 遍历为逻辑 {% endfor %} # Django模板for循环 {% for ... in ... %} # 遍历不为逻辑 # 获取for循环遍历到了第几次...|过滤器(参数...)}} b) Django模板过滤使用 {{ 模板变量|过滤器:参数 }} 注意:Django过滤器 :之后只能接收一个参数 13.3步骤 13.3.1数据库连接配置 flask...class Meta: db_table = '' 定义属性: # 表中外字段名格式: hbook = models.ForeignKey('BookInfo...() # 由多查1 多对象.属性 例:hero.hbook 2.通过模型类进行关联查询 # 查图书(一) 一类.objects.get|filter(多类名__字段__条件=值) 例:books =

10K51

Django之Model操作数据库详解

Django ORM框架功能: 建立模型类和表之间对应关系,允许我们通过面向对象方式来操作数据库。 根据设计模型类生成数据库表格。 通过方便配置就可以进行数据库切换。...=2) #创建书出版社信息,其与出版社关系为一对多,所以用 publish = models.ForeignKey(Publish) #创建书出版日期...每个字典表示一个对象对应于模型对象属性名称。...(name__isnull=False) // 查询用户名不为书 不等于/不包含于: Book.objects.filter().excute(publishe=10) // 查询出版社不为...__gt=4 九、实例 1、DjangoORM如何判断查询结果是否为,判断djangoorm为 result= Booking.objects.filter() 方法一 .exists()

7K10

Django 模型查询2.3

简介 查询集表示从数据库获取对象集合 查询集可以含有零个、一个或多个过滤过滤器基于所给参数限制查询结果 从Sql角度,查询集和select语句等价,过滤器像where和limit子句 接下来主要讨论如下知识点...,[0:1].get()引发DoesNotExist异常 查询集缓存 每个查询集都包含一个缓存来最小化对数据库访问 在新建查询集中,缓存为,首次对查询集求值时,会发生数据库查询,django会将查询结果存在查询集缓存...()、exclude()、get()参数 语法:属性名称__比较运算符=值 表示两个下划线,左侧是属性名称,右侧是比较类型 对于,使用“属性名_id”表示原始值 转义:like语句中使用了%...')) django支持对F()对象使用算数运算 list.filter(bread__gte=F('bcommet') * 2) F()对象还可以写作“模型类__列名”进行关联查询 list.filter...过滤方法关键字参数查询,会合并为And进行 需要进行or查询,使用Q()对象 Q对象(django.db.models.Q)用于封装一组关键字参数,这些关键字参数与“比较运算符”相同 from

2.3K20

Django 学习笔记之模型高级用法(上)

2.1 ForeignKey 1) on_delete 在 Django 2.0 ,设置时需要添加一个 on_delete选项。本身涉及到两个表数据,况且在数据库是有约束行为。...SET_NULL: 置模式,删除时候,字段被设置为,前提就是`blank=True, null=True`,定义该字段时候,允许为。...2)limit_choices_to 该参数用于限制所能关联对象,只能用于 Django ModelForm(Django表单模块)和 admin 后台,对其它场合无限制功能。...4) related_name 用于关联对象反向引用模型名称。主要用于反向查询,即模型实例通过管理器返回第一个模型所有实例。...用于从目标模型反向过滤模型对象名称。

2K30

Django模型

对象信息发生变化时候,我们需要把对象信息保存在关系数据库。目前流行ORM产品JavaHibernate,.NetEntityFormerWork等。...表booktest_heroinfo结构如下:   Django框架会根据关系属性生成一个关系字段,并创建约束。 ?...上去 3.字段查询 实现sqlwhere功能,调用过滤器filter()、exclude()、get(),下面以filter()为例。 通过"属性名_id"表示对应对象id值。...例:查询书名不为图书。 list = BookInfo.objects.filter(btitle__isnull=False) 4) 范围查询 in:是否包含在范围内。...通过对象执行关联查询 在定义模型类时,可以指定三种关联关系,最常用是一对多关系,本例"图书-英雄"就为一对多关系。

6.1K21

后端框架学习-Django

一对一映射 创建一对一: 语法:OneToOneField(类名, on_delete=xxx(级联删除:在存在前提下删除规则)) on_delete: models.CASCADE:级联删除...创建一对一数据 无模型类,和之前相同 有模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑值)) 一对一查询 正向查询:从对象 反向查询:从对象 调用反向属性查询到关联一方...一对多查询 核心:正向属性(authors)和反向属性(book_set) 在多表上设置,关联一表。...无模型类,和之前相同 有模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)

9.4K40

Django3.2边学边记—Adimn站点管理

ModelAdmin类可以控制不同模型在Admin界面展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,...控制显示列,Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...过滤器 用 list_filter 来激活管理更改列表页面右侧侧栏过滤器,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括字段(注意list_display...是不能直接接收字段),会将对应字段值列出来,一般用于快速过滤有重复值字段。...,并返回所有包含这些词对象,不区分大小写(即 icontains 查找:不区分大小写包含匹配),其中每个词必须在 search_fields 至少有一个。

1.3K30

django models.py(python和django)

文章目录 1.创建模型类 2.shell工具增删改查 2.1增 2.2修改 2.3删除 2.4查询 2.5比较属性 2.6sqland、or 2.7mysql聚合函数 2.8mysql排序 2.9...,减少mysqlO 3.8选择需要字段only 3.9n+1问题 1.创建模型类 打开pay应用models.py创建模型类 from datetime import datetime from django.db...2) 关于主键 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。...python manage.py migrate 查询总数量大于库存商品 2.6sqland、or 2.7mysql聚合函数 使用aggregate()过滤器调用聚合函数。...聚合函数包括:Avg平均,Count数量,Max最大,Min最小,Sum求和 例如:查询所有商品总数量 2.8mysql排序 2.9关联查询 回顾一下表与表关系,goods表有 brand

1K10

Django分组聚合查询实例分享

增删改 一对多:先一后多,可以为对象或依赖表主键(publish and book) publish = Publish.objects.create() Book.objects.create(...CharField(): 字符类型(默认不为) max_length=20,null=True 可以为 4....ForeignKey(): 字段 to= 关联模型类 (一对多) to_file = 关联字段,省略默认关联主键 on_delete (关联数据被删除时操作) models.CASCADE...OneToOneField(): 一对一字段 同 3, ManyToManyField() :多对多关系 to = 关联模型类 through=关联关系类 through_fields关联关系表...(本身字段,关联字段) 断开外关联ForeignKey使用(一对多,一对一) # 一对多查询 —-(publish and book) # 方式一 : 不使用,在book 添加 publish_id

1.8K10

Django 模型层之多表操作

Author) def __str__(self): return self.name 注意事项: 1.id字段不写的话会自动添加 2.对于字段,Django会在字段名上添加..."_id"来创建数据库列名 3.字段ForeignKey有一个null=True设置,你可以赋给它值None 二.添加表记录 一对一: # 方式一: detail_obj = models.AuthorDetail.objects.filter...(name='Yven') hwt = models.Author.objects.get(name='hwt') # 绑定多对多关系 # add可以传递对象,可以传递id,也可以传递*列表:(*...所有Django为我们提供了F表达式来完成这类操作 导入包: from django.db.models import F :查询comment_num数量大于read_num书籍 models.Book.objects.filter...'AND',如果需要执行复杂查询,就需要使用Q对象 导入包:from django.db.models import Q 可以使用"&"或者"|"或者"~"来组合Q对象,分别表示与,或,非逻辑 :

1.3K20

初探Django框架

(默认情况下Django 会自动对 views.py 传到HTML文件标签跳转标签, script标签语法进行转义,令其语义失效)。...和前端HTML文件过滤器 safe 效果一样。...Django 模型使用自带 对象关系映射ORM(Object Relational Mapping )用于实现面向对象编程语言里不同类型系统数据之间转换(其实就是数据库系统三级映射模式模式/...Django真正做任务是生成数据库操作语句, 然后交给pymysql这些模块, 让它们去跟数据库进行真正连接和执行查询语句, 然后返回得到数据交回到Django, Django再通过内部方法对结果进行处理分配到具体对象一些属性当中...否则,FILES 是一个字典。 META 包含所有可用HTTP头部信息字典 user 是一个django.contrib.auth.models.User 对象,代表当前登录用户。

2K20

浅谈Django QuerySet对象(模型.objects)常用方法

只有一个author属性连接一个. author__name是book下author属性下name,即book这个表通过访问到author这个表name值。...book in books: print(book.author.name) return HttpResponse('succrss') 注意: select_related只能使用在设置了模型...(即只能在一对多模型上,不能多对一,多对多等),比如我们只在Book设置了author和publisher。...那么select_related里面只能传这两个参数,而不能传入别的参数,BookOrder,因为我们是在BookOrder设置连接到Book,并没有在Book设置连接到BookOrder...但是这两种方法执行效率都比传统方法执行效率高。传统方法就是先返回book对象,再通过book去查询对应相关信息。

3.6K20

35.Django2.0文档

该层处理与表现相关决定: 如何在页面或其他类型文档中进行显示。   V:代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板相关逻辑。 你可以把它看作模型与模板之间桥梁。  ...其它django.contrib应用程序,django.contrib.redirects,其它从网上下在第三方Django应用程序一样,都会自行添加到管理工具。  ...默认地,管理工具使用`` 下拉框`` 来展现`` `` 字段。但是,正如`` 多对多字段`` 那样,有时候你不想忍受因装载并显示这些选项而产生大量开销。...解决这个问题办法是使用`` raw_id_fields`` 选项。它是一个包含字段名称元组,它包含字段将被展现成`` 文本框`` ,而不再是`` 下拉框`` 。...普通活跃,非超级用户管理用户可以根据一套设定好许可进入。 管理界面每种可编辑对象:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。

11.3K100

django_2

要求 修改数据库 Django shell 数据级联(一对多) 元信息 定义字段 模型过滤 创建对象4种方式 查询集 过滤器 获取单个对象 字段查询 时间 聚合函数 跨关系查询 F对象 Q对象...dept 部门表:主表 emp 员工表:从表 两张中有级联关系 带主键表是主表 带表是从表 关联关系放在从表 (团员找班长--> 快) sql优化 一对多模型关系: class Grade...(查询) Django默认通过模型objects对象实现模型数据查询。...__属性名__比较运算符,实际上就是处理数据库join Grade ---g_name Student---》s_name s_grade() gf...,可以实现对字段约束 ·在字段对象时通过关键字参数指定 ·null ·如果为True,Django值以NULL 存储到数据库,默认值是 False ·blank

3.6K30

django 引用自身和on_delete参数

模型使用引用自己本身。...SET_NULL:设置为。如果那条数据被删除了,那么在本条数据上就将这个字段设置为。如果设置这个选项,前提是要指定这个字段可以为。 SET_DEFAULT:设置默认值。...那么将会获取SET函数值来作为这个值。SET函数可以接收一个可以调用对象(比如函数或者方法),如果是可以调用对象,那么会将这个对象调用后结果作为值返回回去。...、update时候,子表会将关联记录字段所在列设为null,所以注意在设计子表时不能设为not null; 为什么在django可以是用不同约束去操作数据库呢。...比如 django on_delete=CASCADE, 但是数据库约束是RESTRICT.

1.3K20
领券