A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

模型类关系
1) 一对多关系
例:图书类-英雄类
models.ForeignKey() 定义在多的类中。
2) 多对多关系
例:新闻类-新闻类型类 体育新闻 国际
models.ManyToManyField() 定义在哪个类中都可以。
3) 一对一关系
例:员工基本信息类-员工详细信息类. 员工工号
models.OneToOneField定义在哪个类中都可以。
关联查询(一对多
在一对多关系中,一对应的类我们把它叫做一类,多对应的那个类我们把它
叫做多类,我们把多类中定义的建立关联的类属性叫做关联属性。
例:查询图书id为1的所有英雄的信息。
        book = BookInfo.objects.get(id=1)
        book.heroinfo_set.all()
通过模型类查询:
        HeroInfo.objects.filter(hbook_id=1)
例:查询id为1的英雄所属图书信息。
        hero =HeroInfo.objects.get(id=1)
        hero.hbook
通过模型类查询:
BookInfo.objects.filter(heroinfo__id=1)
格式:
由一类的对象查询多类的时候:
一类的对象.多类名小写_set.all() #查询所用数据
由多类的对象查询一类的时候:
        多类的对象.关联属性  #查询多类的对象对应的一类的对象
由多类的对象查询一类对象的id时候:
        多类的对象. 关联属性_id
通过模型类实现关联查询:
例:查询图书信息,要求图书中英雄的描述包含'八'。
BookInfo.objects.filter(heroinfo__hcomment__contains='八')
例:查询图书信息,要求图书中的英雄的id大于3.
BookInfo.objects.filter(heroinfo__id__gt=3)
例:查询书名为“天龙八部”的所有英雄。
HeroInfo.objects.filter(hbook__btitle='天龙八部')
通过多类的条件查询一类的数据:
        一类名.objects.filter(多类名小写__多类属性名__条件名)
通过一类的条件查询多类的数据:
        多类名.objects.filter(关联属性__一类属性名__条件名)
插入、更新和删除
调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新。
调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马