django-8-django模型系统
2024-08-31 11:15:40
<<<表关系实现>>>
1.OneToOne
models.OneToOneField('another_table', on_delete=models.CASCADE)
2.OneToMany
models.ForeignKey('another',on_delete=models.SET_NULL, null=True)
3.ManyToMany
ManyToMany('another_table',through='Enroll')
还要借助一个中间表Enroll
1.OneToOne
models.OneToOneField('another_table', on_delete=models.CASCADE)
2.OneToMany
models.ForeignKey('another',on_delete=models.SET_NULL, null=True)
3.ManyToMany
ManyToMany('another_table',through='Enroll')
还要借助一个中间表Enroll
OnenToMany('one', on_delete=models.CASCADE)
OnenToMany('another', on_delete=models.CASCADE)
OnenToMany('another', on_delete=models.CASCADE)
<<<关联表的数据操作>>>
1.OneToMany
一个模型如果定义了一个外键字段,通过这个模型对外键的操作就叫【正向】
1.OneToMany
一个模型如果定义了一个外键字段,通过这个模型对外键的操作就叫【正向】
s.grade = None 把外键删除
从grade对象反过来对和他关联的模型进行操作【反向】
table_set 反响管理器
remove(s)
clear()这两种方法都立刻马上执行
remove(s)
clear()这两种方法都立刻马上执行
set()参数传列表,先执行clear()
filter(grade__name='django')
2.ManyToMany
指定了中间表,add remove set都不能用,必须用中间表
指定了中间表,add remove set都不能用,必须用中间表
3.OneToOne
直接通过模型的小写就能反向操作
<<<跨表查询>>>
1.查询课程表里面的男生
Course.objects.filter(studetns__sex=1)
2.查询选了python课的学生
Student.objects.filter(course__name_contains='python')
3.查询33期,选英语课的学生
Student.objects.filter(course__name__contains='english', grade__num__contains='33')
4.查询学费小于3000的学生
Student.objects.filter(enroll__pay__lt=3000)
5.查询某一期学习python的学生
Grade.objects.filter(student__course__name__contains='python')
1.查询课程表里面的男生
Course.objects.filter(studetns__sex=1)
2.查询选了python课的学生
Student.objects.filter(course__name_contains='python')
3.查询33期,选英语课的学生
Student.objects.filter(course__name__contains='english', grade__num__contains='33')
4.查询学费小于3000的学生
Student.objects.filter(enroll__pay__lt=3000)
5.查询某一期学习python的学生
Grade.objects.filter(student__course__name__contains='python')
最新文章
- logstash无法使用conf启动
- 网络存储(二)之ISCSI原理
- Android 下拉刷新
- wpf 属性变更通知接口 INotifyPropertyChanged
- dede 数据库类使用列表
- Mysqli基础知识
- Drupal8开发教程:认识.info.yml文件
- redis的lists类型
- Openjudge-NOI题库-和为给定数
- 【unix网络编程第三版】ubuntu端口占用问题
- 快乐的Lambda表达式(二)
- jQuery+存储过程实现无刷新分页(九)
- C语言高速入门系列(二)
- 毕向东_Java基础视频教程第20天_IO流(5~6)
- setContentView
- Navicat for Oracle设置唯一性和递增序列
- 第一行代码 Android 思维导图
- poj1862 Stripies
- Python随笔day01
- Java 判断中文字符