2016-01-21 57 views
0

即时通讯只是从乘客路线的ManyToMany关系中乘坐(一)。从数据库GET只是一件事

下面是模型

class Route(models.Model): 
    """ 
    Route model for Retrive a Route M FROM GOOGLE API 
    """ 
    user = models.ForeignKey(User, related_name='route') 
    car = models.ForeignKey(Car, related_name='car', null = True, default= None) 
    status = models.BooleanField(default = True) 
    on_ride = models.BooleanField(default = False) 

class Ride(models.Model): 
    """ 
    Ride model for manage the optimized Route 
    """ 
    seats_available = models.PositiveSmallIntegerField(default = 0) 
    d_route = models.ForeignKey(Route, related_name= 'd_route') 
    p_route = models.ManyToManyField(Route, related_name= 'p_route',blank = True) 

这是我的看法,如果我发了d_route(驱动线)ID,我可以取回平顺,但如果我有p_route(客船)尽量服务器返回乘坐匹配查询不存在。

这是查看

class RideOrRoute(APIView): 
    # authentication_classes = (TokenAuthentication,) 
    permission_classes =() # (IsAuthenticated,) 

    def get(self, request, route_id): 

     route = Route.objects.get(id = route_id) 

     try: 
      ride= Ride.objects.get(d_route = route) 
      serialized_data = {'id': ride.id ,'geocoded_waypoints': json.loads(ride.geocoded_waypoints), 'routes': json.loads(ride.routes) } 
      return Response(serialized_data, status= status.HTTP_200_OK) 
     except: 
      try: 
       ride = Ride.objects.get(p_route = route.id) 
       serialized_data = {'id': ride.id ,'geocodedwaypoints': json.loads(ride.geocoded_waypoints), 'routes': json.loads(ride.routes) } 
       return Response(serialized_data, status= status.HTTP_200_OK) 
      except: 
       serialized_data= {'id': route.id ,'geocoded_waypoints': json.loads(route.geocoded_waypoints), 'routes': json.loads(route.routes) } #json.loads(request_data.read()) }) 
     return Response(serialized_data, status=status.HTTP_200_OK) 

通知,如果司机不有一搭尚未检索到的路由信息​​只

+1

也许有根本没有匹配的数据。没有匹配的查询意味着没有与查询条件匹配的数据。 –

回答

1

我觉得你在代码中有一个错误。 尝试改变

ride = Ride.objects.get(p_route = route.id) 

ride = Ride.objects.get(p_route = route) 
相关问题