1.一对多
设置外键
pub=models.ForeignKey('Publish',on_delete=models.CASCADE) pub为设置外键的名称, Publish为关联的表 on_delete为django2.0之后多的填的内容, CASCADE:此值设置,是级联删除。 PROTECT:此值设置,是会报完整性错误。 SET_NULL:此值设置,会把外键设置为null,前提是允许为null。 SET_DEFAULT:此值设置,会把设置为外键的默认值。 SET():此值设置,会调用外面的值,可以是一个函数。
设置完外键之后,在子表中会生成一个pub_id来与主表的id来进行关联
添加对应关系
b=Book.objects.create(name='java',price=18,pub_date='2017-12-31',pub_id=2) 这种方式可以直接添加带有对应关系的数据
b=Publish.objects.filter(id=2)[0] Book.objects.create(name='C',price=1000,pub_date='2017-12-12',pub=b) 先从主表中获取一行的数据,相当于进行选择, 然后在字表中创建字段的时候,使用外键名称pub来等于这个主表的字段
双下划线查询
使用双下划线来跨表进行查询
可以从filter进行跨表,也可以在values中跨表