3
我想對用於序列化查詢集的類使用過濾器。我構建了以下過濾器:使用序列化器過濾。模型序列化器
# define a filterset
class commentFilter(django_filters.FilterSet):
class Meta:
model = comment
fields = ['tag', 'title']
隨着通用視圖,這工作得很好,我可以使用篩選此:?tag=23
# generic view
class CommentsAll(generics.ListAPIView):
model = comment
serializer_class = CommentSerializer
filter_class = commentFilter
但是對於非一般的看法,我不能得到的濾波函數來工作(但數據被返回)。唯一的區別是我看到的是我正在使用serializers.ModelSerializer
。是否有某種方法可以對這類類進行過濾工作?我的視圖返回的模型數據的查詢集與通用視圖中使用的數據相同。
# non generic
class CommentSerializer(serializers.ModelSerializer):
count = serializers.Field(source='subcomments')
score = serializers.Field(source='score')
upvotes = serializers.Field(source='upvotes')
class Meta:
model = comment
fields = ('title', 'comment', 'tag', 'created', 'count', 'score', 'upvotes',)
filter_class = commentFilter
謝謝湯姆(並感謝一個偉大的API框架!)。我在'GenericAPIView'上注意到的唯一過濾器方面是'filter_backends = api_settings.DEFAULT_FILTER_BACKENDS'我是否需要在我的類中指定確保以相同方式進行過濾? – djq