我想在用于序列化查询集的类上使用过滤器。我构建了以下过滤器:
# 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