Django的关系映射


一对一 【创建】

一对一是表示现实事物间存在的一对一的对应关系。

特殊字段选项 【必须】

on_delete - 级联删除

使用oto示例:

1、先创建oto应用,然后到setting.py文件注册应用

2、创建oto模型类

3、创建数据——使用oto的方式可以直接插入数据

一对一 【查询数据】

1、正向查询:直接通过外键属性查询,则称为正向查询

2、反向查询:没有外键属性的一方,可以调用反向属性查询到关联的另一方

一对一 【定义】

一对多是表示现实事物间存在的一对多的对应关系。

一对多需要明确出具体角色,在多表上设置外键

一对一 【创建】

案例代码:

创建了应用之后在seeting.py进行注册应用,然后在应用下创建模型类

一对多 【创建数据】

from otm.models import *
p1 = Publisher.objects.create(name='中信出版社')
b1 = Book.objects.create(title='Python1',publisher=p1)
b2 = Book.objects.create(title='Python2',publisher_id=1)

一对多 【查询数据】

1、正向查询 【通过Book查询Publisher】

2、反向查询 【通过publisher查询对应的所有的Book】需要用到反向属性

多对多 - 定义

多对多表达对象之间多对多的复杂关系,如:每个人都有不同的学校(小学,初中,高中...),每个学校都有不同的学生...

语法:在关联的两个类那个zh任意一个类中,增加:

多对多 - 创建

用法示例:

创建应用mtm然后到setting.py文件里注册

进行数据迁移后到数据库查看mtm数据表

python3 manage.py makemigrations
python3 manage.py migrate

多对多 - 创建数据

from mtm.models import *
a1 = Author.objects.create(name='gong')
b1 = a1.book_set.create(title='python1')

a2 = Author.objects.create(name='gyq')
a2.book_set.add(b1)

多对多 - 查询数据

1、正向查询 有多对多属性的对象 查 另一方

通过Book查询对应的所有的Author

此时多对多属性 等价于 objects

展开阅读全文

页面更新:2024-04-15

标签:中信   关系   示例   属性   模型   事物   定义   对象   现实   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top