一对多 or 一对一
前提条件:
name = models.ForeignKey(Product, on_delete=models.CASCADE, related_name="ps")
正向查询:
data= Student.objects.get(id=1)
data.product.title#查询关联表的数据的title
反向查询
1.没设置有related_name
data = Product.objects.get(id=1)
v=data.student_set.first()#Student模型小写_set
v.name
2.设置有related_name
data = Product.objects.get(id=1)
data.ps.first().name
此类正想查询和反向查询还可以用作条件查询
正向
In [38]: data = Vocation.objects.filter(id=1,name__name="Joe").first()#Vocation 外键.外键对象属性
In [40]: data.name
Out[40]: <Infos: Joe>
In [41]: data.name.name
Out[41]: 'Joe'
反向
p=Infos.objects.filter(ps__job="网站设计").first()
p.joe
此类有个缺点,就是要执行两次sql,第一次是查询某张数据表数据,第二次通过外键关联获取另一张数据表的信息