2015-10-30 2 views
0

Как я могу фильтровать свой запрос?Angulary and Django REST

Просто пример:

.controller('TViewController', ["$scope", "$stateParams", "Ad", "Banner", function($scope, $stateParams, Ad, Banner) { 
    $scope.ad = Ad.get({ ad_id: $stateParams.ad_id }); 
    $scope.banners = Banner.query(); 
}]) 

И

class CBanner(models.Model): 
    image = models.ImageField(upload_to="img") 
    ad = models.ForeignKey(CAds, null=True, blank=True) 
class CADs(models.Model): 
    name = models.CharField(max_length=80, null=True, blank=True) 

Они оба Viewset, сериализатору и маршрутизации регистра

class AdsViewer(viewsets.ModelViewSet): 
    queryset = CADs.objects.all() 
    serializer_class = AdsSerializer 
etc... 

Как фильтруется это: $scope.banners = Banner.query(); получить только баннеры с ad(foreignKey) = ad_id?

ответ

0

Вам нужно добавить параметр запроса к вашему URL, например:

http://example.com/api/ads/?ad_fk=5 

В AdsViewer:

def get_queryset(self): 
    """ 
    This view should return a list of all the ads filtered with proper foreign key 
    """ 
    ad_fk = self.request.query_params.get('ad_fk', None) 
    return CADs.objects.filter(ad=ad_fk) 

Для получения дополнительной информации см doc