0
아주 잘 작동하는 몇 가지 필드에서 장고 필터 백엔드를 사용하고 있습니다. 하지만 특정 조건을 얻을 때 필자는 필드를 필터링하고 싶습니다. user_type이 기본 필터 쿼리 인 경우 그렇지 않으면 모델에서 모든 개체를 가져옵니다. 필터에 대한 내 코드는 여기에 있습니다 : 내가 필요장고 휴식 프레임 워크에서 장고 필터 백엔드에 대한 조건?
http_method_names = ['get']
serializer_class = SearchSerializer
pagination_class = LargeResultsSetPagination
filter_backends = (DjangoFilterBackend,)
filter_fields = ('property_zipcode', 'property_state', 'property_county',)
건은 다음과 같습니다
def get_queryset(self):
if self.request.query_params.get('basic',None):
filter_backends = (DjangoFilterBackend,)
filter_fields = ('property_zipcode', 'property_state', 'property_county',)
return filtered_query # I want to return filter query from here.
queryset = property.objects.all();
return queryset
나는 나머지 프레임 워크를 장고 및 필터 백엔드 장고에 새로운 오전. 누군가가이 일을 시도하면 나를 도와주세요.
class YourClass(ModelViewSet):
serializer_class = SearchSerializer
pagination_class = LargeResultsSetPagination
filter_backends = (DjangoFilterBackend,)
filter_fields = ('property_zipcode', 'property_state', 'property_county',)
def filter_queryset(self, queryset):
if self.request.query_params.get('basic',None):
queryset = super(YourClass,self).filter_queryset(self.get_queryset())
else:
queryset=self.get_queryset()
return queryset
재정 get_queryset
이 예상대로 작동하지 않습니다, filter_queryset
방법은 get_queryset
방법 후 프레임 워크에 의해 호출되기 때문에, DRF get_queryset
다음 filter_queryset
방법으로 그것을 필터링 :
감사합니다. 모든 것이 매력처럼 작동합니다. –