def get_legs(result):
legs = result['Legs']
segments = result['Segments']
for leg in legs:
l, created = Leg.objects.get_or_create(
id = leg['Id'],
departure_place = Place.objects.get(pk=leg['OriginStation']),
arrival_place = Place.objects.get(pk=leg['DestinationStation']),
departure = UTC.localize(parse_datetime(leg['Departure']), is_dst=True),
arrival = UTC.localize(parse_datetime(leg['Arrival']), is_dst=True),
duration = leg['Duration'],
directionality = leg['Directionality'],
journey_mode = JourneyMode.objects.get_or_create(name=leg['JourneyMode'])[0]
)
carriers = leg['Carriers']
ocarriers = leg['OperatingCarriers']
stops = leg['Stops']
lsegments = leg['SegmentIds']
for carrier in carriers:
l.carriers.add(Carrier.objects.get(pk=carrier))
for ocarrier in ocarriers:
l.operating_carriers.add(Carrier.objects.get(pk=ocarrier))
for stop in stops:
if stop != 0:
l.stops.add(Place.objects.get(pk=stop))
for lsegment in lsegments:
l.segments.add(update_segment(lsegment, segments))
l.save()
评论列表
文章目录