我有一个自定义的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
答案 0 :(得分:2)
一切都在self.data
作为有序的词典:
class ListingFilter(django_filters.FilterSet):
def filter_location(self, queryset, value):
print(self.data['distance'])
return queryset