首先说一下什么是正向查找,
比如order表,有一个表项在model中定义为:
order = models.ForeignKey(
'oms.Order',
related_name='order_detail',
on_delete=models.CASCADE)
order_details = OrderDetail.objects.filter(order__id='od2017101910000001') //这就是正向引用,两个_连接符
当然在ORM中就更直接明了,order_detail.order.id,作为外键关联的子表,直接就查询出来。
反向查表当然就是我这张表被其它表引用了作为外键,我也非常方便地就查它出来。
比如本例中order表查出order_detail表的内容来,这就是反向查表。
关键就是定义model时,related_name='order_detail'这个外键属性。非常好用!
比如order表,有一个表项在model中定义为:
order = models.ForeignKey(
'oms.Order',
related_name='order_detail',
on_delete=models.CASCADE)
order_details = OrderDetail.objects.filter(order__id='od2017101910000001') //这就是正向引用,两个_连接符
当然在ORM中就更直接明了,order_detail.order.id,作为外键关联的子表,直接就查询出来。
反向查表当然就是我这张表被其它表引用了作为外键,我也非常方便地就查它出来。
比如本例中order表查出order_detail表的内容来,这就是反向查表。
关键就是定义model时,related_name='order_detail'这个外键属性。非常好用!