クエリセットをシリアル化するために使用されるクラスでフィルターを使用したいと思います。次のフィルターを作成しました。
# 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