【问题标题】:Angulary and Django RESTAngular 和 Django REST
【发布时间】:2015-11-01 01:28:00
【问题描述】:

如何过滤我的查询集?

简单示例:

.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)

它们都有视图集、序列化器和路由寄存器

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

我如何过滤这个:$scope.banners = Banner.query(); 以仅获取带有ad(foreignKey) = ad_id 的横幅?

【问题讨论】:

    标签: angularjs django-rest-framework


    【解决方案1】:

    你需要在你的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

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 2013-04-23
      • 2015-07-16
      • 2017-08-18
      • 2018-10-06
      • 2017-07-17
      • 2016-01-26
      • 1970-01-01
      • 2021-08-17
      相关资源
      最近更新 更多