django-8-django模型系统

<<<表关系实现>>>
 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)
<<<关联表的数据操作>>>
 1.OneToMany
  一个模型如果定义了一个外键字段,通过这个模型对外键的操作就叫【正向】
  s.grade = None 把外键删除
  从grade对象反过来对和他关联的模型进行操作【反向】
  table_set 反响管理器
   remove(s)
   clear()这两种方法都立刻马上执行
   set()参数传列表,先执行clear()
  filter(grade__name='django')
 2.ManyToMany
  指定了中间表,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')
 
 
 
posted @ 2019-03-20 20:40  记不得的样子  阅读(100)  评论(0编辑  收藏  举报