Django ORM
外键
正向访问
# Filter中访问外键的属性,用双下划线
sub_order.objects.filter(add_date = '20230401', product__name="可乐", order__order_no = '').values()
字段名的转换
用F模块中的annotate方法
from django.db.models. import F
sub_order.objects.annotate(
productname = F('country__name'),
orderno = F('order__order_no')
)\
.filter(add_date = '20230401', productname="可乐", orderno = '').values('add_date', 'productname', 'orderno')
反向访问
表名(转换为小写)_set
order = Oders.objects.get(id = 1)
order.suborder_set.all() # 表名是SubOrder,注意转换了大小写
order.suborder_set.all()[0] # 第一条
order.suborder_set.all()[0].name # 第一条的name属性
或者:
在定义Model的时候,外键字段使用"related_name"参数。
浙公网安备 33010602011771号