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

在django中,外键字段可以使用哪种类型的查找

在Django中,外键字段可以使用以下类型的查找:

  1. 正向查找:通过外键字段可以直接访问关联模型的对象。例如,如果有一个模型A,其中包含一个外键字段指向模型B,可以使用A.b来访问与A关联的B对象。
  2. 反向查找:通过关联模型可以访问包含外键字段的模型的对象。例如,如果有一个模型A,其中包含一个外键字段指向模型B,可以使用B.a_set.all()来获取与B关联的所有A对象。
  3. 跨模型查找:通过外键字段可以跨越多个模型进行查找。例如,如果有一个模型A,其中包含一个外键字段指向模型B,而B又包含一个外键字段指向模型C,可以使用A.b.c来访问与A关联的C对象。

外键字段的使用可以帮助建立模型之间的关系,实现数据的关联和引用。在Django中,外键字段的查找可以方便地进行模型间的数据查询和操作。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)。

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

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django学习-第七讲:django 常用字段字段属性,和表关系、操作

1. django常用字段 1. AutoField 映射到数据库是int类型可以有自动增长特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动生成一个叫做id自动增长主键。...和表关系 MySQL,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用是InnoDB引擎,是支持约束存在使得ORM框架在处理表关系时候异常强大。...因此这里我们首先来介绍下Django使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此底层,Django为Article表添加了一个属性名_id字段(比如author字段名称是author_id),这个字段是一个,记录着对应作者主键。...论坛开发,一般评论都可以进行二级评论,即可以针对另外一个评论进行评论,那么定义模型时候就需要使用来引用自身 class Comment(models.Model): content

3.9K30

django开发取消约束实现

# setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...''' 两种方法 教室ClassRoom和教室编号ClassNumber 字段django类里名(room_number)在数据库名(room_number_id) '''      # 一.1...(数据库字段名字room_number_id)值,将相对应值直接赋值给该字段      class_number = ClassNumber.object.get("id=1").room_number...字段django类里名(room_number)在数据库名(room_number_id)      c.save() return HttpResponse("ojbk") 多对一: 类似一对一...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发取消约束就是小编分享给大家全部内容了,希望能给大家一个参考。

3.6K10

Django基表创建、字段属性简介、脏数据概念、子序列化

反过来先操作表B后操作表A,更满足逻辑思维,一样可以执行。通过逻辑将A、B表进行连表查询,不会有任何异常。如两张表建立了一对一字段A表,那么先往B表写数据就更合理。...Book 3)Author 和 AuthorDetail 一对一:要根据实际需求建立合理位置 AuthorDetail(AuthorDetail方作者就可以没有AuthorDetail,...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外设置反向查询字段名:正向找字段名,反向找related_name...值,related_name默认值是表名小写 + _set,这就是为什么Django跨表反向查询时我们使用表名小写 + _set去查另一张表数据。...子序列化使用方法及注意事项: 1)只能在序列化中使用 2)字段名必须是(正向反向都可以)字段,相对于自定义序列化外字段,自定义序列化字段不能参与反序列化,而子序列化必须为键名,子序列化字段不写入数据库

4.3K30

django admin配置搜索域是一个处理方法

python 2.7.11 django 1.8.4 错误内容:related Field has invalid lookup: icontains 我原来默认认为处理搜索时候,django...,哪些字段显示,在这里 remark 字段将不显示 admin.site.register(Category, CategoryAdmin) [ 说明 ] 使用 Django admin 系统搜索时可能会出现...不应该只是一个model,而该是另一个表明确一个字段。 所以我们需要指定特定字段 “本表字段__所在表需查询字段”。...补充知识:Djangomodel中使用,但在页面上显示是xxx_object?...admin配置搜索域是一个处理方法就是小编分享给大家全部内容了,希望能给大家一个参考。

3.8K20

Django---ORM操作大全

1、无需连表查询性能低,省硬盘空间(选项不固定时用) 2、modle文件里不能动态增加(选项一成不变用Djangochoice) 其他字段 db_index = True 表示设置索引 unique...1对多关系,也称为多对多关系; orm设置如果 A表设置了字段user=models.ForeignKey('UserType')到B表(注意外表名加引号) 就意味着 写在写A表B表主键,..._set 多对多和跨表一样都是 小写表名_set 3、既自定义第三张关系表 也使用ManyToManyField('Boy')字段(杂交类型) ManyToManyField()字段创建第3张关系表...(方便反向查找写ForeignKey字段时候,如果想要在反向查找时不使用默认 小写表名_set,就在定义这个字段时间加related参数!...此时Django为我们提供了F和Q查询: 1、F 可以获取对象字段属性(列),并对其进行操作; from django.db.models import F,Q #F 可以获取对象字段属性

6.7K100

DjangoORM操作

,其主要目的是为了封装底层SQL语句; 1、字符串类(以下都是在数据库本质都是字符串数据类型,此类字段只是Django自带admin中生效) name=models.CharField(max_length...1、无需连表查询性能低,省硬盘空间(选项不固定时用) 2、modle文件里不能动态增加(选项一成不变用Djangochoice) 其他字段 db_index = True 表示设置索引 unique...orm时候,我们可以把一对多,多对多,分为正向和反向查找两种方式。...,ForeignKey字段就建在子表; 如果B表1条记录也对应A表N条记录,两表之间就是双向1对多关系,也称为多对多关系; orm设置如果 A表设置了字段user=models.ForeignKey...点到天荒地老 所以可以通过obj..B表列表跨表操作(注意!!

4.7K10

Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响

Django也支持了Postgresql数据类型: JSONField ArrayField HStoreField 这三种数据类型因为都是非标量,且都能用JSON来表示,我下文就用JSONField...时表示”。...正常情况下,transform一般用来通过连接两个表,比如.filter(author__username='phith0n')可以表示author连接用户表,找到username字段;...那么,JSONField,lookup实际上是没有变,但是transform从“在外查找”,变成了“JSON对象查找”,所以自然需要重写get_transform函数。...总的来说,如果你应用使用了JSONField,且用户可以进入应用Django-Admin后台,就可以进行SQL注入。

2K32

Django之ORM

Django具体对应方式为: 类名对应数据库表名 类名对应数据库表名 类属性对应数据库里字段 类实例对应数据库表里一行数据 类实例对象属性对应这行字段值 一.数据库连接 Django...这里id是自动创建,school_id是school添加产生 如果想要与另一张表其他字段添加,需要在加上参数to_filed=’字段名’,同时这个字段必须是unique=True 2.一对一...表示多对多关系。 除了这种方式也可以手动创建一个表,手动添加两个来实现多对多。...,那么还可以直接添加该表字段,利用两个方式添加。...使用’__’进行查找 一对多 school_name为对象字段 school为student表设置字段 student1=student.objects.filter(id=2).values

1.1K30

Django 多对多字段更新和插入数据实例

DjangoManyToManyField(多对多)使用以及through作用 创建一个经典多对多关系:一本书可以有多个作者,一个作者可以有多本书(如下) ?...从图可以看出生成了三张表,一个是book(书籍)表包含id,title两个字段,一个是author(作者表)包含id,name,email三个字段,这是我们刚刚在models.py文件创建两个模型,但是有一点需要注意...,Django允许指定一个用于管理多对多关系中间模型,然后就可以把这些额外字段添加到这个中间模型,具体方法就是ManyToMany字段中指定through参数指定作为中介中间模型,修改上述models.py...创建BookAuthor类最后使用了自定义名称,这个也可以不用指定,系统可以自动生成表名 仔细观察BookAuthor这个类,也就是我们前面讲到中间模型,同时我们看到创建中间模型时候我们创建了两个...,add(),remove(),create()这些方法都会被禁用,所以创建这种类型关系时候唯一方法就是通过创建中间模型实例 以上这篇Django 多对多字段更新和插入数据实例就是小编分享给大家全部内容了

4.2K30

Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

目录 Making queries 进行查询 创建一个对象(一条数据记录) 保存修改表对象 保存字段或多对多字段(ForeignKey or ManyToManyField fields) Retrieving...functions 聚合函数 field-lookups 字段查找字段查询条件,双下划线查询) 常见形式 注意点 书写格式 lookuptype 查找类型分类整理 单词 特别点 本文将翻译 django...保存字段或多对多字段(ForeignKey or ManyToManyField fields) 字段 ForeignKey 更新一个字段写法和普通字段完全一致,只需要将正确类型对象分配给相关字段即可...(对象赋值给字段) entry.save() # 调用 .save() 方法 ManyToManyField 想要保存多对多字段,写法和字段有点小区别,使用 .add() 方法来记录一个关系。...--> 推测是 遍历、取值,翻译成取值好像更合适一点) alias 别名 特别点 保存字段那里,可以直接给对象赋值一个对象(blog 对象 --> blog 属性) cache

2.9K20

Django之Model操作数据库详解

二、 数据库配置 Django可以配置使用sqlite3,mysql,oracle,postgresql等数据库。...=2) #创建书出版社信息,其与出版社关系为一对多,所以用 publish = models.ForeignKey(Publish) #创建书出版日期...查找参数(**kwargs)应该满足下文字段查找格式。多个参数之间是和AND关系。    ...关键字参数指定Annotation将使用关键字作为Annotation 别名。 匿名参数别名将基于聚合函数名称和模型字段生成。 只有引用单个字段聚合表达式才可以使用匿名参数。...如果指定字段,每个字典将只包含指定字段/值。如果没有指定字段,每个字典将包含数据库表中所有字段和值。

7K10

Django进阶-6-ORM正向与反向查找

学习 django orm 时候,可以把一对多,多对多,分为正向和反向查找两种方式。...Foreign_Key 字段在哪张表决定, Foreign_Key字段在哪张表就可以哪张表使用 Foreign_Key字段连表,反之没有Foreign_Key 字段使用与其关联 小写表名; 1对多...:对象..关联表字段,values(字段__关联表字段) 多对多:字段.all() ② 反向连表操作 通过value、value_list、fifter 方式反向跨表:小写表名__关联表字段...通过对象形式反向跨表:小写表名_set().all() 应用场景: 一对多:当一张表创建一行数据时,有一个单选下拉框(可以被重复选择) 例如:创建用户信息时候,需要选择一个用户类型【普通用户】【...多对多:某表创建一行数据是,有一个可以多选下拉框 例如:创建用户信息,需要为用户指定多个爱好 一对一:某表创建一行数据时,有一个单选下拉框(下拉框内容被用过一次就消失了 例如:原有含10

1.3K20

Django模型

Django模型 Django模型定义models.py文件。模型是MVTM,也相当于MVCM。 Django,模型必须继承自Model类。...默认创建主键列属性为id,也可以使用pk,意为primary key. 字段名称不能出现双下划线,因为这是Django查询语法之一。...自Django3.2后,可以settings.py配置DEFAULT_AUTO_FIELD参数来设置主键数据类型,默认是DEFAULT_AUTO_FIELD = ‘django.db.models.BigAutoField...,此选项会抛出IntegrityError异常 注意:我们在数据库,设置时候需要制定另一张表关联字段,但是Django里并没有指定。...这是因为Django会默认指定另外一张表id作为关联字段。如下图所示: 可以看到peopleinfo这张表键名称是book_id

1.9K20

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

ModelAdmin类可以控制不同模型Admin界面展示方式,主要包括列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,...atitle.short_description='标题'   如果是更改模型字段显示列标题,可以定义模型字段时,设置verbose_name值 ,或者封装成方法,再对方法使用上面那个属性,模型字段不能直接使用那个属性... = 'unknown' 以上通过指定方法属性来控制显示是新老版本通用Django3.2可以通过给装饰器传参来解决:   model.py: 1234567891011121314151617...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括字段(注意list_display是不能直接接收字段),会将对应字段值列出来,一般用于快速过滤有重复值字段...,并返回所有包含这些词对象,不区分大小写(即 icontains 查找:不区分大小写包含匹配),其中每个词必须在 search_fields 至少有一个。

1.3K30

Django之路由层

一对多字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id """ # 书跟作者是多对多关系字段建在任意一方都可以...字段建在任意一方都可以,但是建议建在查询频率较高那一方 author_detail = models.OneToOneField(to='Author_detail') # fk +...,建议建在查询频率高一方 一对多字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id 多对多关系,django orm会自动帮我们创建书籍和作者第三张关系表...>可以包含一个转化器类型(converter type),比如使用 使用了转换器int。...是两个数字,返回结果也必须是两个数字 urls.py使用 register_converter 将其注册到URL配置: from django.urls import path,register_converter

1.3K21

Mysql基础

有了数据库管理系统,用户就可以抽象意义下处理数据,而不必顾及这些数据计算机布局和物理位置。...select distinct JS ,name from ExamResult; -- (2)select 也可以使用表达式,并且可以使用: 字段 as 别名或者:字段 别名...语句 --约束对子表含义: 如果在父表找不到候选,则不允许子表上进行insert/update --约束对父表含义: 父表上进行update/delete以更新或删除子表中有一条或多条对...-- 应匹配行候选时,父表行为取决于:定义子表时指定 -- on update/on delete子句...记录时,同步update/delete掉子表匹配记录 -----级联删除:如果父表记录被删除,则子表对应记录自动被删除-------- FOREIGN KEY (charger_id

4.2K20

Python Web - Flask笔记5

Boolean:布尔类型,映射到数据库是tinyint类型。 DECIMAL:定点类型。是专门为了解决浮点类型精度丢失问题存储钱相关字段时候建议大家都使用这个数据类型。...映射到数据库是date类型Python代码可以使用datetime.date来指定。...映射到数据库也是datetime类型Python代码可以使用datetime.datetime来指定。...映射到数据库也是time类型Python代码可以使用datetime.time来至此那个。...和四种约束 使用SQLAlchemy创建非常简单。在从表增加一个字段,指定这个字段是哪个表哪个字段可以了。从表中外字段,必须和父表主键字段类型保持一致。

1K10

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...与之关联值设置为可执行对象返回值,设置:models.SET(可执行对象) #2.4 数据库表示 在生成数据库时,Django追加"_id"字段名称来创建其数据库列名,可以通过指定显式更改此内容db_column...正向查找 (Entry->Blog) 由存放表(Entry)->查->被关联表(Blog) >>> e = models.Entry.objects.get(id=1) >>> e.blog 反向查找 (Blog->Entry) 由被关联表(Blog)->查->存放表(Entry) >>> b = models.Blog.objects.get(id=1) >

75020

【Python全栈100天学习笔记】Day41 Django深入理解框架

,其中IntegerField对应数据库integer类型,CharField对应数据库varchar类型,DecimalField对应数据库decimal类型,ForeignKey用来建立多对一关联...说明3:可以QuerySet上使用update()方法一次更新多个对象。...如果布尔类型可以为空要使用NullBooleanField。 模型中放置业务逻辑。 用.DoesNotExists取代ObjectDoesNotExists。...on_delete:关联对象被删除时对应动作,可取值包括django.db.models定义: CASCADE:级联删除。...index_together 设定一起建立索引多个字段名 verbose_name 为对象设定人类可读名称 verbose_name_plural 设定对象复数名称 查询参考 按字段查找可以条件

2.2K30

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

而细节用法往往体现在一些差别用法,难以理解知识点上。 1 复杂字段类型 经过前面的学习,我们知道模型字段类型一方面是指定数据库表列名称和数据类型,另一方面决定 HTML 表单标签类型。...IntegerField Django 所有支持数据库,合法取值范围是 -2147483648 到 2147483647。...一般而言,文件都是保存在服务器硬盘。因此,该字段在数据库其实是一个字符串类型,默认最大长度100,可以通过max_length参数自定义。...2.1 ForeignKey 1) on_delete Django 2.0 ,设置时需要添加一个 on_delete选项。本身涉及到两个表数据,况且在数据库是有约束行为。...SET_DEFAULT: 置默认值,删除时候,字段设置为默认值,所以定义时候注意加上一个默认值。 SET(): 自定义对应实体值。

2K30
领券