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

Django在ForeignKey字段为空时对其进行过滤

Django是一个基于Python的开源Web应用框架,它提供了一套完整的MVC(Model-View-Controller)架构,用于快速开发高质量的Web应用程序。在Django中,ForeignKey字段用于建立模型之间的关联关系。

当ForeignKey字段为空时,我们可以通过过滤来处理。具体而言,可以使用__isnull属性来过滤ForeignKey字段为空的记录。__isnull属性接受布尔值参数,用于指定字段是否为空。以下是一个示例:

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

class ModelA(models.Model):
    name = models.CharField(max_length=100)

class ModelB(models.Model):
    model_a = models.ForeignKey(ModelA, on_delete=models.CASCADE, null=True)

# 过滤ForeignKey字段为空的记录
filtered_records = ModelB.objects.filter(model_a__isnull=True)

在上述示例中,我们定义了两个模型ModelAModelB,它们之间通过model_a字段建立了一对多的关联关系。model_a字段是一个ForeignKey字段,允许为空(null=True)。

为了过滤ModelBmodel_a字段为空的记录,我们使用了filter()方法,并通过model_a__isnull=True来指定过滤条件。这样,filtered_records将包含所有model_a字段为空的ModelB记录。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。

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

相关·内容

Django小技巧22: 设计一个好的模型

模型的定义是单个对象的表示, 而不是公司的集合. 这通常会导致混淆,因为我们倾向于通过数据库思考。模型最终被翻译成table.该表使用复数形式命名的....Blank 和 Null 我另一篇文章有讲过两者的区别 Blank or Null,在这里我会总结一下. null: 数据库相关; 定义数据库字段的值是否接受值。...blank: 验证相关, 当调用form.is_valid(), 将会判断值是否. 虽然两者的是有区别的, 但一个拥有null=True和blank=False的字段是完全没有问题的。...在数据库级别上, 该字段可以为 NULL, 但在应用程序级别上, 它是必填字段(前提你通过 Django 标准的 Form 进行判断)。...这里是 Django 支持的所有字段类型. 如果你代码风格规范感兴趣, 可以读一读Django Coding Style. 当然也可以看一看Flake8.

86920

基于Django OneToOneField和ForeignKey的区别详解

ForeignKey,ManyToManyField和OneToOneField的辨析 导引 模型(Models)是网站所需信息种类的定义,包含了网站存储数据中的重要字段和数据行为。...,若进行删除操作则抛出错误 SET_NULL 将ForeignKey,这只null选项True的时候产生作用 SET_DEFAULT 设为默认值(default value),此默认值已预先...ForeignKey设置 SET() ForeignKey设置SET()函数传递的数值 DO_NOTHING 不进行任何操作。...通过一个限制字段信息的某一可能选项进行约束,可以通过字典,函数或者查询值来设置 related_name 可以指定关联的类本类中的名称,通过这一参数可以用两个字段名引用同一个类,通过这个名称父类可以取得子类的值...概念上我们可以理解其为设置unique属性True的一种类型,区别之处在于它“反向”的数值会返回一个目标值,这对于继承关系的表达十分有用,例如一下示例程序: from django.conf import

2.3K20

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

2.1 ForeignKey 1) on_delete Django 2.0 中,设置外键需要添加一个 on_delete选项。外键本身涉及到两个表的数据,况且外键在数据库中是有约束行为。...SET_NULL: 置模式,删除的时候,外键字段被设置,前提就是`blank=True, null=True`,定义该字段的时候,允许。...例如: # 终端下使用 Django >>>b = Book.objects.get(id=1) # 其中 entry_set 默认的 related_name >>>b.entry_set.all...要确保页面不存在 XXS 漏洞,需要使用 django.utils.html.escape() 对内容进行转义。...对于每一个字段类型,除了 ForeignKey、ManyToManyField和 OneToOneField 这三个特殊的关系类型,第一可选位置参数都是 verbose_name。

2K30

django_2

,可以实现字段的约束 ·字段对象通过关键字参数指定 ·null ·如果True,Django值以NULL 存储到数据库中,默认值是 False ·blank...·unique ·如果 True, 这个字段表中必须有唯一值 关系 ·分类 ·ForeignKey:一多,将字段定义多的端中 ·ManyToManyField...,缓存首次,第一次查询集求值,会发生数据缓存,django会将查询出来的数据做 一个缓存,并返回查询结果,以后的查询直接使用查询集的缓存。...·字段对象通过关键字参数指定 ·null ·如果True,Django值以NULL 存储到数据库中,默认值是 False ·blank ·如果True,则该字段允许空白...·如果 True, 这个字段表中必须有唯一值 关系 ·分类 ·ForeignKey:一多,将字段定义多的端中 ·ManyToManyField:多多,将字段定义两端中

3.6K30

Django ORM 知识概要

() 布尔型 允许 models.BooleanField() 不允许 models.NullBooleanField() 整型 5个字节的正整数models.PositiveSmallIntegerField...一一 models.OneToOneField(Model) 多一 models.ForeignKey(Model) 多多 models.ManyToManyField(Model) 字段类型参数...SET_NULL:将引用设置NULL(要求字段可以为),当字段设置null=True才可以使用 SET_DEFAULT:设置默认值。...只有当字段设置了default参数才能使用 SQL等价物:SET DEFAULT。 SET(value 或者 函数返回值):设置给定值。这个不是SQL标准的一部分,完全由Django处理。...其它操作 exists(),count(),aggregate() 判断是否存在,统计个数,聚合 aggregate() 是这个数据表中的数据进行统计 自定义聚合查询 F对象和Q对象 F对象:操作字段的数据

1.8K20

用人话讲解django之数据的增删改

设置最大长度,verbose_namedjango后台显示该英文字段的中文意思 name = models.CharField(max_length=30, verbose_name="学生姓名...= models.DateTimeField(auto_now=True, verbose_name="更新时间") # ForeignKey多外键,比如一个班级有多个学生,就属于一多,...外键要放到"多"的那张表, # related_name是对外键取别名,常用在django的orm反向查询中 cls = models.ForeignKey('Class', related_name...下面一个 views.py 文件中写一个视图函数,使用 ORM 进行基本的增删改操作。记得给函数配置对应的 url。...的班级名称改为1901_xiu,filter过滤,支持多个参数,update是更新方法,支持多个参数 # Class.objects.filter(name="1901").update(name

38830

ORM常用字段介绍

关系字段 ForeignKey 外键类型ORM中用来表示外键关联关系,一般把ForeignKey字段设置 '一多'中'多'的一方。...(前提FK字段需要设置) models.SET_DEFAULT 删除关联数据,与之关联的值设置默认值(前提FK字段需要设置默认值) models.SET 删除关联数据, a....OneToOneField 一字段。 通常一字段用来扩展已有字段字段参数 to 设置要关联的表。 to_field 设置要关联的字段。 on_delete 同ForeignKey字段。...related_query_name 同ForeignKey字段。 symmetrical 仅用于多多自关联,指定内部是否创建反向操作的字段。默认为True。...through 使用ManyToManyField字段Django将自动生成一张表来管理多多的关联关系。

2.5K10

Django 系列博客(十三)

数据库中字段【年】部分是否可以建立唯一索引 verbose_name Admin中显示的字段名称 blank Admin中是否允许用户输入 editable...ForeignKey 外键类型ORM中用来表示外键关联关系,一般把ForeignKey字段设置 '一多'中'多'的一方。...一一的关联关系多用在当一张表的不同字段查询频次差距过大的情况下,将本可以存储一张表的字段拆开放置两张表中,然后将两张表建立一一的关联关系。...to 设置要关联的表 related_name 反向查询,使用的字段名,用于代替原反向查询的'表名_set'。 symmetrical 仅用于多多自关联,指定内部是否创建反向操作的字段。...through 使用 ManyToManyField 字段Django 将自动生成一张表来管理多多的关联关系。

1.1K30

django模型动态修改参数,增加 filter 字段的方式

null:用于表示某个字段可以为 unique:如果设置unique=True 则该字段在此表中必须是唯一的 。...其它属性详情请查看:官方文档 关系字段 ForeignKey 外键类型ORM中用来表示外键关联关系,一般把ForeignKey字段设置 ‘一多’中’多’的一方。...(前提FK字段需要设置) models.SET_DEFAULT:删除关联数据,与之关联的值设置默认值(前提FK字段需要设置默认值) models.SET:删除关联数据, a....symmetrical:仅用于多多自关联,指定内部是否创建反向操作的字段。默认为True。...through:使用ManyToManyField字段Django将自动生成一张表来管理多多的关联关系。

3.8K31

【云+社区年度正文】Django从入门到精通No.2----模型

二、模型的定义 模型可以定义储存数据的字段和值,比如我们进行表单提交的时候,一些注册信息就可以利用模型来进行管理,然后统一提交到数据库中。简单来说,模型是与数据库有关的操作集合。...无该字段django自动创建,一个model不能有两个该字段。...注:数据参考来源w3cschool 上面的字段很容易让人想起数据库中的数据类型,所以这些字段也就会有约束,常用的约束如下: null:字段是否可以为 blank:是否允许用户输入 db_column...1.多一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个外键的操作,即ForeignKey字段,而且外键要定义多的一方。...None # Admin或ModelForm中显示关联数据,提供的条件,字典类型 symmetrical=None # 仅用于多多自关联,用于指定内部是否创建反向操作的字段

2.1K00

Django—模型

选项 通过选项实现字段的约束,选项如下: null:如果True,表示允许,默认值是False。 blank:如果True,则该字段允许空白,默认值是False。...,但通过后台管理页面添加英雄信息hcomment对应的输入框不能为 hbook = models.ForeignKey('BookInfo')#英雄与图书表的关系为一多,所以属性定义英雄模型类中...新建的查询集中,缓存为,首次查询集求值,会发生数据库查询,django会将查询的结果存在查询集的缓存中,并返回请求的结果,接下来查询集求值将重用缓存中的结果。...(queryset) View Code 上去 5.模型类关系 关系字段类型 关系型数据库的关系包括三种类型: ForeignKey:一多,将字段定义多的一端中。...books = BookInfoManager() 2.管理器类中定义创建对象的方法 模型类对应的数据表进行操作,推荐将这些操作数据表的方法封装起来,放到模型管理器类中。

6.1K21

django 字段类型_access的数据库类型是

字段类型 字段类型指使用Django ORM创建数据库支持的数据字段类型。...默认情况下,BinaryField设置editableFalse,在这种情况下,他不能包含在ModelForm中,django2.1中进行了修改:旧版本不允许设置editableTrue。...有一个额外的可选参数:max_length,字段的最大长度,以字符单位。最大长度django的验证中使用强制执行MaxLengthValidator。...**注意:**模型中使用FileField或ImageField,需要执行以下几个步骤: l settings.py中定义MEDIA_ROOTdjango设置存储上载文件的目录的完整路径(这些文件并未直接存储在数据库中...例如:如果有一个可为字段,并且删除引用的对象将其设置,如 user = models.ForeignKey( ​ User, ​ models.SET_NULL, ​

3.8K30

Django之ORM字段和参数

外键类型ORM中用来表示外键关联关系,一般把ForeignKey字段设置 '一多'中'多'的一方。    ...ForeignKey可以和其他表做关联关系同时也可以和自身做关联关系。 ---- OneToOneField    一字段。通常一字段用来扩展已有字段。...(前提FK字段需要设置) models.SET_DEFAULT 删除关联数据,与之关联的值设置默认值(前提FK字段需要设置默认值) models.SET 删除关联数据,  与之关联的值设置指定值...---- related_query_name 同ForeignKey字段。 ---- symmetrical               仅用于多多自关联,指定内部是否创建反向操作的字段。...---- through      使用ManyToManyField字段Django将自动生成一张表来管理多多的关联关系。

2.3K60

Django官方文档小结(一) -- Models模型

Django 关系字段 本文主要内容是关于Django框架中models的知识小结 #1 环境 Python3.7.3 Django==2.0.7 #2 字段 #2.1 一多(ForeignKey)...一多 : fk字段"多"的models中定义 from django.db import models class Blog(models.Model): name = models.CharField...(前提FK字段需要设置,一一同理) # models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值') on_delete...=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置默认值(前提FK字段需要设置默认值,一一同理) on_delete=models.SET, # 删除关联数据...与之关联的值设置可执行对象的返回值,设置:models.SET(可执行对象) #2.4 数据库表示 在生成数据库Django追加"_id"字段名称来创建数据库列名,可以通过指定显式更改此内容db_column

75020

Django-models & QuerySet API

django中配置mysql数据库 查询queryset如果需要选取查询集中的某个子集的字段, 应该用切片,或者first 选择某个子集对象,这样才能够使用到 子集的字段,直接queryset后选择字段会直接报错...,数据库里的字段可以为,如果想要生效需要设置blank=True。...blank    True,admin中可以为。但是不限制数据库,要想限制数据库里,需要设置null。 choices   选择框。...(补充)关系型字段一    ForeignKey多   ManyToManyField 例如:学生跟老师是多多关系,学生跟学校是多一关系: vim models.py models.ForeignKey...student_teacher来表示多多关系 通过关联关系命令行添加数据: #添加学生 #方法一: >>> t1=Teacher.objects.get(tname='老唐') >>> s1=School.objects.get

1.4K20

Django分组聚合查询实例分享

可以同时多个字段进行聚合处理: aggregate(name1= , name2= …) 2. 是QuerySet 对象的方法(all,filter) 3. 返回值dict类型 4....分组后的filter 代表having判断,只对聚合字段进行条件判断,(参数非聚合或分组进行条件判断代表where判断) 5....ForeignKey(): 外键字段 to= 关联模型类 (一多) to_file = 关联字段,省略默认关联主键 on_delete (外键关联数据被删除的操作) models.CASCADE...(本身字段,关联字段) 断开外键关联的ForeignKey使用(一多,一一) # 一多查询 —-(publish and book) # 方式一 : 不使用外键,book 中添加 publish_id...# 断开关联(db_constraint属性)的多多自动创建关系表 (book(外键) and author) # 断开后依然支持Django ORMlianiao 查询语法 # 当新表中无需新加额外字段

1.8K10

基于django的视频点播网站开发-step4-首页功能

本讲中,我们开始首页功能的开发,开发过程中,大家将会学习到Django中的通用视图类、分页对象paginator以及foreignKey外键的使用。 效果演示 [16851ab0d057a5d6?...数据类型是CharField,最大长度max_length=100,允许null=True status 是否启用。...其中classification是一个ForeignKey外键字段,表示一个分类对应多个视频,一个视频对应一个分类(多一) class Video(models.Model): STATUS_CHOICES...数据类型是charField,最大长度max_length=100,允许null=True desc 视频描述。...起始页1 当前页>(总页数-5),起始页(总页数-9) 其他情况 起始页(当前页-5) 举例: 假设一共16页 情况1: 当前页==5 则页码列表[1,2,3,4,5,6,7,8,9,10

1.3K41
领券