接上一节
4.查询数据
在Django中,正向查询(Forward Query)和反向查询(Reverse Query)是ORM(Object-Relational Mapping,对象关系映射)中用于处理数据库表间关系时的两种查询方式,主要应用于具有关联关系的模型(如一对多、多对一或一对一关系)。
正向查询(Forward Query)
正向查询通常指的是从包含外键的模型(也称为“从表”或“子表”)出发,去查询与之关联的另一个模型(称为“主表”或“父表”)的数据。这是直接通过外键字段进行的操作。例如,如果你有一个Blog
模型和一个Author
模型,其中Blog
模型有一个指向Author
模型的外键,那么从Blog
查询其关联的Author
信息就是正向查询。
执行后可以看到数据库id=1的那一条数据
反向查询(Reverse Query)
反向查询则是从主表模型出发,去获取所有关联的从表模型的记录。Django自动为每一个定义了外键的模型创建一个反向查询的属性。这个属性默认的名字是以关联模型的小写名称加上 _set
后缀构成,但可以通过 related_name
参数自定义。使用这个属性,可以从父表轻松地访问所有关联的子表记录。
在filter还可以这么使用
比如:查找用户的类型名称为'黑铁'的所有用户