django一对多关系中,为了实现按照一端查询多端,之前都是用extra操作符,经过查看官方文档还有in这个操作符,用这个实现更简单。直接上代码:
根据查询条件模糊查询所有符合条件的机架列表,然后根据机架列表查出相应的设备,之前是用下面这种实现方式:
rackid = request.POST['rackid']
retdir['rackid'] = rackid
racks = Rack.objects.filter(rackid__icontains = rackid)
ids = ""
forrackinracks:
ids += str(rack.id) + ","
ids = ids[0:-1]
ifids ==Noneorids =='':
ids = '0'
equipments = Equipment.objects.extra(where=['rack_id IN ('+ ids +')'])
现在用in操作符,实现更简单,效率更高:
rackid = request.POST['rackid']
retdir['rackid'] = rackid
racks = Rack.objects.filter(rackid__icontains = rackid)
equipments = Equipment.ob