Django 模型类关系及相关操作
admin
2023-07-13 16:04:08
0次

1.模型类关系

(1)一对多关系

如:图书类-英雄类
models.ForeignKey() #定义在多类

(2)多对多关系

如:新闻类-新闻类型类
models.ManyToManyField() #定义在哪个类都可以

Django 模型类关系及相关操作

(3)一对一关系

如:员工-员工详细信息
models.OneToOneField() #定义在哪个类都可以

2.关联查询 (一对多)

在一对多关系中,一对应的类我们把它叫做一类,多对应的那个类我们把它叫做多类,我们把多类中定义的建立关联的类属性叫做关联属性

(1)
b=BookInfo.objects.get(id=1)
b.heroinfo_set.all() #查询id为1的图书关联的英雄的信息

通过模型类查询:

HeroInfo.objects.filter(hbook__id=1)

(2)

h = HeroInfo.objects.get(id=1)
h.hbook #查询id为1的英雄关联的图书信息

通过模型类查询:

BookInfo.objects.filter(heroinfo__id=1)

(3)格式:

Django 模型类关系及相关操作

(4)通过模型类实现关联查询:

BookInfo.objects.filter(heroinfohcommentcontains='八') #查询图书要求关联的英雄描述包含八

BookInfo.objects.filter(heroinfoidgt=3) #查询图书要求关联的英雄id大于3

HeroInfo.objects.filter(hbook__btitle='天龙八部') #查询天龙八部所有英雄信息

(a)通过多类的条件查询一类的数据:
一类名.objects.filter(多类名小写多类属性名条件名)

(b)通过一类的条件查询多类的数据:
多类名.objects.filter(关联属性一类属性名条件名)

Django 模型类关系及相关操作

3.插入、更新和删除

(1)调用一个模型类对象的save方法实现对模型类对应数据表的插入和更新

(2)调用一个模型类对象的delete方法实现对模型类对应数据表的删除

4.自关联

Django 模型类关系及相关操作

自关联是一种特殊的一对多关系

案例:显示广州和它的上下级行政区

(1)在models.py建立自关联模型类
Django 模型类关系及相关操作

(2)迁移
Django 模型类关系及相关操作

(3)查看MySQL且插入数据,id与aparent_id关联
Django 模型类关系及相关操作

(4)在views.py写areas()函数
Django 模型类关系及相关操作

(5)在urls.py添加url
Django 模型类关系及相关操作

(6)写模板
Django 模型类关系及相关操作

5.管理器

BookInfo.objects.all()->objects是Django帮我自动生成的管理器对象,通过这个管理器可以实现对数据的查询。

objects是models.Manger类的一个对象。自定义管理器之后Django不再帮我们生成默认的objects管理器。

(1)自定义一个管理器类,这个类继承models.Manger类

super()表示父类,self.model获取所在的模型类
Django 模型类关系及相关操作
Django 模型类关系及相关操作

models.Manger自带方法create,要输入具体属性
Django 模型类关系及相关操作

(2)再在具体的模型类里定义一个自定义管理器类的对象

在BookInfo模型类里自定义管理器类的对象
Django 模型类关系及相关操作

自定义管理器类的应用场景:

(1)改变查询的结果集。
比如调用BookInfo.books.all()返回的是没有删除的图书的数据。

(2)添加额外的方法。
管理器类中定义一个方法帮我们操作模型类对应的数据库。
使用self.model()就可以创建一个跟自定义管理器对应的模型类对象。

小结:

Django 模型类关系及相关操作

6.元选项

Django默认生成的表名:

应用名小写 _ 模型类名小写

元选项:

需要在模型类中定义一个元类Meta,在里面定义一个类属性 db_table就可以指定表名。

在BookInfo模型类定义Meta类指定表名为bookinfo
Django 模型类关系及相关操作

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...