如何从django过滤器集中的另一个过滤器获取值

时间:2017-04-06 10:42:10

标签: python django

我有一个自定义的django过滤器,我希望得到"距离"在filter_location函数里面,我是如何实现这个的?

想要这样做的原因,我正在进行外部API调用以获取数据并同时需要这两个值。

class ListingFilter(django_filters.FilterSet):

    def filter_location(self, queryset, value):
        # Want to get the distance filter value here
        if value:
            #Location value


    def filter_distance(self, queryset, value):
        pass

    distance = django_filters.CharFilter(label='Distance', method=filter_distance)
    location = django_filters.CharFilter(label='Location', method=filter_location)

    class Meta:
        model = Company
        fields = ['distance', 'service', 'tags', 'location']


class CompanyListView(viewsets.ReadOnlyModelViewSet):
    queryset = Company.objects.all()
    filter_class = ListingFilter

1 个答案:

答案 0 :(得分:2)

一切都在self.data作为有序的词典:

class ListingFilter(django_filters.FilterSet):
    def filter_location(self, queryset, value):
        print(self.data['distance'])
        return queryset