2016-01-21 33 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) 
相關問題